Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #3171
Closed
Open
Issue created Sep 17, 2018 by Administrator@rootContributor

HANG running any Go program

Created by: FiloSottile

  • DynamoRIO version: 7.0.0-rc1
  • Operating system: 64-bit Linux (within a Debian Docker container)
  • Application: any Go program, including "Hello world", compiled with GOOS=linux CGO_ENABLED=0
package main

func main() {
	println("Hello, World!")
}
$ drrun -debug -root $DYNAMORIO_HOME -- /usr/local/src/flagscov/hello_world
<Starting application /usr/local/src/flagscov/hello_world (18)>
<Paste into GDB to debug DynamoRIO clients:
set confirm off
add-symbol-file '/usr/local/share/DynamoRIO-Linux-7.0.0-RC1/lib64/debug/libdynamorio.so' 0x00007f3f0ff72a68
>
<Initial options = -no_dynamic_options -code_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct >
<Application tried to execute from dr memory 0x000000004a4cede0.
This may be a result of an unsuccessful attack or a potential application vulnerability.>
^\SIGQUIT: quit
PC=0x4086f6 m=0 sigcode=128

goroutine 0 [idle]:
runtime.notesleep(0x4bb4e0)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/lock_futex.go:149 +0x76
runtime.stoplockedm()
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/proc.go:2165 +0x8a
runtime.schedule()
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/proc.go:2565 +0x2d9
runtime.park_m(0xc000000300)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/proc.go:2676 +0xae
runtime.mcall(0x0)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/asm_amd64.s:299 +0x5b

goroutine 1 [chan receive, locked to thread]:
runtime.gopark(0x470ba8, 0xc00005c058, 0xc00001170d, 0x3)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/proc.go:302 +0xeb
runtime.goparkunlock(0xc00005c058, 0x170d, 0x3)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/proc.go:308 +0x53
runtime.chanrecv(0xc00005c000, 0x0, 0xc000000301, 0x411498)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/chan.go:520 +0x2be
runtime.chanrecv1(0xc00005c000, 0x0)
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/chan.go:402 +0x2b
runtime.gcenable()
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/mgc.go:217 +0x6f
runtime.main()
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/proc.go:164 +0x119
runtime.goexit()
	/Users/valsorda/homebrew/Cellar/go/1.11/libexec/src/runtime/asm_amd64.s:1333 +0x1

rax    0x4bae20
rbx    0x4
rcx    0xffffffffffffffff
rdx    0x989680
rdi    0x0
rsi    0x1
rbp    0x7ffd5c30a598
rsp    0x7ffd5c30a570
r8     0xc000042700
r9     0xc000000f00
r10    0x8
r11    0x282
r12    0x426910
r13    0x11
r14    0x476d78
r15    0x0
rip    0x4086f6
rflags 0x246
cs     0x33
fs     0x0
gs     0x0
<Stopping application /usr/local/src/flagscov/hello_world (18)>

The SIGQUIT information might or might not be useful, depending how confused the Go runtime that's printing it is.

Assignee
Assign to
Time tracking