Cat Tom
Cat Tom

Reputation: 76

Unable to get the c stack trace with a corefile from a cgo routine

I'm using https://github.com/gen2brain/aac-go.git to encode AAC in my golang project, but sometimes I got crash in my ARMV7l linux and I have executed like CGO_DEBUG=1 GOTRACEBACK=crash ./binary to got the coredump file, I use gdb-multiarch to view stacktrace but only see stack of golang runtime, it seems c will emit a signal and cgo will handle this signal, so how can I view the exact c calltack of crash, any help will be appreciate.

#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x2859c50, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x2859c50) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x000668b0 in runtime.gcstopm () at /usr/local/go/src/runtime/proc.go:3081
#6  0x00066b10 in runtime.findRunnable (gp=<optimized out>, inheritTime=<optimized out>, tryWakeP=<optimized out>) at /usr/local/go/src/runtime/proc.go:3149
#7  0x00068d7c in runtime.schedule () at /usr/local/go/src/runtime/proc.go:3868
#8  0x000696ec in runtime.goschedImpl (gp=0x3730d88, preempted=true) at /usr/local/go/src/runtime/proc.go:4065
#9  0x000697e8 in runtime.gopreempt_m (gp=0x3730d88) at /usr/local/go/src/runtime/proc.go:4082
#10 0x0007df50 in runtime.newstack () at /usr/local/go/src/runtime/stack.go:1070
#11 0x0009cf10 in runtime.morestack () at /usr/local/go/src/runtime/asm_arm.s:383
#12 0x00000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 10 (LWP 3666):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x28800d0, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x28800d0) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x0006b03c in runtime.exitsyscall0 (gp=0x2814008) at /usr/local/go/src/runtime/proc.go:4755
#6  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#7  0x00000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 9 (LWP 335):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x2880bd0, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x2880bd0) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x00066adc in runtime.findRunnable (gp=<optimized out>, inheritTime=<optimized out>, tryWakeP=<optimized out>) at /usr/local/go/src/runtime/proc.go:3512
#6  0x00068d7c in runtime.schedule () at /usr/local/go/src/runtime/proc.go:3868
#7  0x000695cc in runtime.park_m (gp=0x2a93b08) at /usr/local/go/src/runtime/proc.go:4036
#8  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#9  0x0239f150 in go:buildinfo ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 8 (LWP 3667):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x242b6cc <runtime[newmHandoff]+12>, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x242b6cc <runtime[newmHandoff]+12>) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x00065c50 in runtime.templateThread () at /usr/local/go/src/runtime/proc.go:2760
#4  0x00064234 in runtime.mstart1 () at /usr/local/go/src/runtime/proc.go:1729
#5  0x0006419c in runtime.mstart0 () at /usr/local/go/src/runtime/proc.go:1686
#6  0x0009cda4 in runtime.mstart () at /usr/local/go/src/runtime/asm_arm.s:210

Thread 7 (LWP 3665):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x2859150, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x2859150) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
--Type <RET> for more, q to quit, c to continue without paging--
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x0006b03c in runtime.exitsyscall0 (gp=0x2be9688) at /usr/local/go/src/runtime/proc.go:4755
#6  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#7  0x02405458 in runtime[semtable] ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 6 (LWP 3676):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x285a1d0, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x285a1d0) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x00066adc in runtime.findRunnable (gp=<optimized out>, inheritTime=<optimized out>, tryWakeP=<optimized out>) at /usr/local/go/src/runtime/proc.go:3512
#6  0x00068d7c in runtime.schedule () at /usr/local/go/src/runtime/proc.go:3868
#7  0x000695cc in runtime.park_m (gp=0x2d11e68) at /usr/local/go/src/runtime/proc.go:4036
#8  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#9  0x02d11e68 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 5 (LWP 3793):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x285a750, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x285a750) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x00066adc in runtime.findRunnable (gp=<optimized out>, inheritTime=<optimized out>, tryWakeP=<optimized out>) at /usr/local/go/src/runtime/proc.go:3512
#6  0x00068d7c in runtime.schedule () at /usr/local/go/src/runtime/proc.go:3868
#7  0x000695cc in runtime.park_m (gp=0x28058c8) at /usr/local/go/src/runtime/proc.go:4036
#8  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#9  0x0239f150 in go:buildinfo ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (LWP 3662):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x23fef70 <runtime.m0+200>, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x23fef70 <runtime.m0+200>) at /usr/local/go/src/runtime/lock_futex.go:170
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00066610 in runtime.stoplockedm () at /usr/local/go/src/runtime/proc.go:3026
#5  0x00068ce8 in runtime.schedule () at /usr/local/go/src/runtime/proc.go:3847
#6  0x000695cc in runtime.park_m (gp=0x2885328) at /usr/local/go/src/runtime/proc.go:4036
#7  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#8  0x00000004 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (LWP 3663):
#0  runtime.usleep () at /usr/local/go/src/runtime/sys_linux_arm.s:576
#1  0x0006e454 in runtime.sysmon () at /usr/local/go/src/runtime/proc.go:5965
#2  0x00064234 in runtime.mstart1 () at /usr/local/go/src/runtime/proc.go:1729
#3  0x0006419c in runtime.mstart0 () at /usr/local/go/src/runtime/proc.go:1686
#4  0x0009cda4 in runtime.mstart () at /usr/local/go/src/runtime/asm_arm.s:210

Thread 2 (LWP 3664):
#0  runtime.futex () at /usr/local/go/src/runtime/sys_linux_arm.s:416
#1  0x000597b4 in runtime.futexsleep (addr=0x2858bd0, val=0, ns=-1) at /usr/local/go/src/runtime/os_linux.go:69
#2  0x0002246c in runtime.notesleep (n=0x2858bd0) at /usr/local/go/src/runtime/lock_futex.go:170
--Type <RET> for more, q to quit, c to continue without paging--
#3  0x0006432c in runtime.mPark () at /usr/local/go/src/runtime/proc.go:1761
#4  0x00065d78 in runtime.stopm () at /usr/local/go/src/runtime/proc.go:2782
#5  0x000668b0 in runtime.gcstopm () at /usr/local/go/src/runtime/proc.go:3081
#6  0x00066b10 in runtime.findRunnable (gp=<optimized out>, inheritTime=<optimized out>, tryWakeP=<optimized out>) at /usr/local/go/src/runtime/proc.go:3149
#7  0x00068d7c in runtime.schedule () at /usr/local/go/src/runtime/proc.go:3868
#8  0x000695cc in runtime.park_m (gp=0x2a92fc8) at /usr/local/go/src/runtime/proc.go:4036
#9  0x0009ce04 in runtime.mcall () at /usr/local/go/src/runtime/asm_arm.s:265
#10 0x0239f150 in go:buildinfo ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (LWP 3668):
#0  runtime.raise () at /usr/local/go/src/runtime/sys_linux_arm.s:153
#1  0x0007aa38 in runtime.dieFromSignal (sig=6) at /usr/local/go/src/runtime/signal_unix.go:923
#2  0x0007b1dc in runtime.sigfwdgo (sig=6, info=0x2987848, ctx=0x29878c8, ~r0=<optimized out>) at /usr/local/go/src/runtime/signal_unix.go:1128
#3  0x0007983c in runtime.sigtrampgo (sig=6, info=0x2987848, ctx=0x29878c8) at /usr/local/go/src/runtime/signal_unix.go:432
#4  0x0009fc48 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_arm.s:535

Upvotes: 2

Views: 64

Answers (0)

Related Questions