[Bug go/82131] New: FAIL: TestCgoCallbackGC in gotools testsuite; segfaults in morestack.S:529
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Sep 7 12:33:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82131
Bug ID: 82131
Summary: FAIL: TestCgoCallbackGC in gotools testsuite;
segfaults in morestack.S:529
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: go
Assignee: ian at airs dot com
Reporter: ubizjak at gmail dot com
CC: cmang at google dot com
Target Milestone: ---
The testcase fails on x86_64-linux-gnu split-stack target.
Running the testcase manually under the debugger:
$gdb --args ./testprogcgo CgoCallbackGC
(gdb) r
Starting program:
/home/uros/git/gcc/libgo/go/runtime/testdata/testprogcgo/testprogcgo
CgoCallbackGC
warning: no loadable sections found in added symbol-file system-supplied DSO at
0x2aaaaaaab000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x2aaaad51d940 (LWP 1741)]
[New Thread 0x2aaaaf5c6940 (LWP 1742)]
[New Thread 0x2aaaaf9da940 (LWP 1744)]
[New Thread 0x2aaaaf7d0940 (LWP 1743)]
[New Thread 0x2aaac9a6b940 (LWP 1745)]
[New Thread 0x2aaac9c75940 (LWP 1746)]
...
[New Thread 0x2aab347a9940 (LWP 1944)]
[New Thread 0x2aab34c8b940 (LWP 1945)]
[New Thread 0x2aab34e97940 (LWP 1946)]
[New Thread 0x2aab354a6940 (LWP 1947)]
[New Thread 0x2aab356b0940 (LWP 1948)]
[New Thread 0x2aab37906940 (LWP 1949)]
[Thread 0x2aab0050e940 (LWP 1849) exited]
[Thread 0x2aaae5289940 (LWP 1784) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2aab01168940 (LWP 1851)]
__morestack () at ../../../git/gcc/libgcc/config/i386/morestack.S:529
529 call __morestack_unblock_signals
(gdb) bt
#0 __morestack () at ../../../git/gcc/libgcc/config/i386/morestack.S:529
#1 0x00002aaaaba3e73e in dwarf_lookup_pc (state=state@entry=0x2aaaad91f000,
ddata=ddata@entry=0x2aaaaf12fd10, pc=<optimized out>,
pc@entry=46912512497780, callback=callback@entry=0x2aaaab4e1aa0 <callback>,
error_callback=error_callback@entry=0x2aaaab4e1d20 <error_callback>,
data=data@entry=0x2aab42847740, found=<optimized out>) at
../../../git/gcc/libbacktrace/dwarf.c:2836
#2 0x00002aaaaba3fbbf in dwarf_fileline (state=0x2aaaad91f000,
pc=46912512497780, callback=0x2aaaab4e1aa0 <callback>,
error_callback=0x2aaaab4e1d20 <error_callback>, data=0x2aab42847740) at
../../../git/gcc/libbacktrace/dwarf.c:2896
#3 0x00002aaaaba40cc6 in unwind (context=<optimized out>,
vdata=0x2aab42847700) at ../../../git/gcc/libbacktrace/backtrace.c:91
#4 0x00002aaaac495499 in _Unwind_Backtrace (trace=trace@entry=0x2aaaaba40c40
<unwind>, trace_argument=trace_argument@entry=0x2aab42847700)
at ../../../git/gcc/libgcc/unwind.inc:295
#5 0x00002aaaaba40d39 in backtrace_full (state=0x2aaaad91f000,
skip=skip@entry=0, callback=callback@entry=0x2aaaab4e1aa0 <callback>,
error_callback=error_callback@entry=0x2aaaab4e1d20 <error_callback>,
data=data@entry=0x2aab42847740)
at ../../../git/gcc/libbacktrace/backtrace.c:127
#6 0x00002aaaab4e1dd5 in runtime_callers (skip=skip@entry=4, locbuf=<optimized
out>, m=<optimized out>, keep_thunks=keep_thunks@entry=false)
at ../../../git/gcc/libgo/runtime/go-callers.c:184
#7 0x00002aaaab940071 in runtime.callers (skip=skip@entry=4, locbuf=...) at
../../../git/gcc/libgo/go/runtime/traceback_gccgo.go:63
#8 0x00002aaaab96e4c4 in runtime.mProf_Malloc (size=16, p=<optimized out>) at
../../../git/gcc/libgo/go/runtime/mprof.go:245
#9 runtime.profilealloc (mp=0xc4203fc000, size=16, x=<optimized out>) at
../../../git/gcc/libgo/go/runtime/malloc.go:873
#10 runtime.mallocgc (size=<optimized out>, typ=<optimized out>,
needzero=<optimized out>) at ../../../git/gcc/libgo/go/runtime/malloc.go:795
#11 0x00002aaaaba49875 in __morestack () at
../../../git/gcc/libgcc/config/i386/morestack.S:544
#12 0x00002aaaab97014f in runtime.newobject (typ=<optimized out>) at
../../../git/gcc/libgo/go/runtime/malloc.go:850
#13 0x0000000000406fb6 in main.grow1 (x=0xc42010a8a0, sum=0xc4202e0ce8) at
/home/uros/git/gcc/libgo/go/runtime/testdata/testprogcgo/callback.go:66
#14 0x0000000000406fe1 in main.grow1 (x=0xc42010a8a0, sum=0xc4202e0ce0) at
/home/uros/git/gcc/libgo/go/runtime/testdata/testprogcgo/callback.go:67
#15 0x0000000000406fe1 in main.grow1 (x=0xc42010a8a0, sum=0xc4202e0cd8) at
/home/uros/git/gcc/libgo/go/runtime/testdata/testprogcgo/callback.go:67
...
#63 0x0000000000406fe1 in main.grow1 (x=0xc42010a8a0, sum=0xc4202e0b58) at
/home/uros/git/gcc/libgo/go/runtime/testdata/testprogcgo/callback.go:67
#64 0x0000000000406fe1 in main.grow1 (x=0xc42010a8a0, sum=0xc4202e0b50) at
/home/uros/git/gcc/libgo/go/runtime/testdata/testprogcgo/callback.go:67
#65 0x00002aaaaba3ca20 in ?? () at ../../../git/gcc/libbacktrace/dwarf.c:925
from /home/uros/local/lib64/libgo.so.11
#66 0x00002aab42846000 in ?? ()
(gdb) disass
...
0x00002aaaaba4982c <+42>: callq 0x2aaaaba48890 <__generic_morestack>
0x00002aaaaba49831 <+47>: mov -0x8(%rbp),%r10
0x00002aaaaba49835 <+51>: mov %rax,%rsp
0x00002aaaaba49838 <+54>: sub %r10,%rax
0x00002aaaaba4983b <+57>: add $0x600,%rax
0x00002aaaaba49841 <+63>: mov %rax,%fs:0x70
=> 0x00002aaaaba4984a <+72>: callq 0x2aaaaba48ea0
<__morestack_unblock_signals>
0x00002aaaaba4984f <+77>: mov -0x18(%rbp),%rdi
0x00002aaaaba49853 <+81>: mov -0x20(%rbp),%rsi
...
(gdb) list
524 #else
525 #define X86_64_SAVE_NEW_STACK_BOUNDARY(reg) movl
%e##reg,%fs:0x40
526 #endif
527 X86_64_SAVE_NEW_STACK_BOUNDARY (ax)
528
529 call __morestack_unblock_signals
530
531 movq -24(%rbp),%rdi # Restore registers.
532 movq -32(%rbp),%rsi
533 movq -40(%rbp),%rdx
More information about the Gcc-bugs
mailing list