This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: boehm-gc test failure on sparc-linux
- From: Christian Jönsson <c dot christian dot joensson at telia dot com>
- To: Gcc bugs <gcc-bugs at gcc dot gnu dot org>
- Cc: Jeff Sturm <jsturm at one-point dot com>,Hans Böhm <hans_boehm at hp dot com>
- Date: Fri, 5 Apr 2002 14:26:39 +0200
- Subject: Re: boehm-gc test failure on sparc-linux
- References: <20020206150014.GA23383@fw.j-son.org> <Pine.LNX.4.10.10202061341030.30468-100000@mars.deadcafe.org>
On Wed, Feb 06, 2002 at 01:43:27PM -0500, Jeff Sturm wrote:
> On Wed, 6 Feb 2002, Christian Jönsson wrote:
> > make[3]: Entering directory `/share1/gcc-dev/gcc/objdir/sparc-linux/boehm-gc'
> > FAIL: gctest
>
> No messages at all? gctest must be aborting on a signal, e.g. SIGSEGV.
>
> > Is there anyone here that could assist me in hunting this down? I'm
> > just a simple guy trying to help out the gcc team by running tests of
> > gcc to get the thingy "better".
>
> Run gctest in gdb to get a stack backtrace.
>
This was on a Debian Woody (test release) sun4m system using
binutils 2.12.90.0.1-1
dejagnu 1.4.2-1.1
gcc 2:2.95.4-14 (Debian prerelease)
gcc-2.95 1:2.95.4-5 (Debian prerelease)
kernel-image-2.2.20-sun4dm-smp 9
libc6 2.2.5-3
In-tree joined gcc-3.1 and binutils-2.12 cvs branches.
LAST_UPDATED: Thu Apr 4 06:22:57 UTC 2002
I'm not sure this is a real problem, a test problem and a debugging
problem but here goes. The gdb snapshot I've used to debug is
gdb+dejagnu-5.1.90_20020403.tar.bz2.
$ env LD_LIBRARY_PATH=`pwd`/.libs:`pwd`/../../gcc ~/gdb .libs/gctest
GNU gdb 5.1.90_20020403
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-linux"...
(gdb) r
Starting program: /share2/gcc-rel/objdir-gcc-3.1+binutils-2.12-cvs/sparc-linux/boehm-gc/.libs/gctest
Program received signal SIGSEGV, Segmentation fault.
0x5003dee0 in GC_mark_from (mark_stack_top=0x3b0e0, mark_stack=0x3b0a8,
mark_stack_limit=0x430a8) at /share2/gcc-rel/gcc/boehm-gc/mark.c:654
654 deferred = *limit;
(gdb) bt
#0 0x5003dee0 in GC_mark_from (mark_stack_top=0x3b0e0, mark_stack=0x3b0a8,
mark_stack_limit=0x430a8) at /share2/gcc-rel/gcc/boehm-gc/mark.c:654
#1 0x5003d330 in GC_mark_some (cold_gc_frame=0xeaffe60c "")
at /share2/gcc-rel/gcc/boehm-gc/mark.c:357
#2 0x50033630 in GC_stopped_mark (stop_func=0x500327dc <GC_never_stop_func>)
at /share2/gcc-rel/gcc/boehm-gc/alloc.c:489
#3 0x500331c4 in GC_try_to_collect_inner (
stop_func=0x500327dc <GC_never_stop_func>)
at /share2/gcc-rel/gcc/boehm-gc/alloc.c:350
#4 0x50042598 in GC_init_inner () at /share2/gcc-rel/gcc/boehm-gc/misc.c:652
#5 0x5003b4dc in GC_generic_malloc_inner (lb=7, k=1)
at /share2/gcc-rel/gcc/boehm-gc/malloc.c:121
#6 0x5003b750 in GC_generic_malloc (lb=7, k=1)
at /share2/gcc-rel/gcc/boehm-gc/malloc.c:189
#7 0x5003badc in GC_malloc (lb=7) at /share2/gcc-rel/gcc/boehm-gc/malloc.c:294
#8 0x00012a88 in run_one_test ()
at /share2/gcc-rel/gcc/boehm-gc/tests/test.c:1097
#9 0x00013548 in main () at /share2/gcc-rel/gcc/boehm-gc/tests/test.c:1352
(gdb) print limit
$1 = (word *) 0xeafff1ec
(gdb) print current_p
$2 = (word *) 0xeaffeff4
(gdb) print mark_stack_top[-2]
$3 = {mse_start = 0x5008fde0, mse_descr = 2288}
(gdb) print mark_stack_top[-1]
$4 = {mse_start = 0x501c8320, mse_descr = 45624}
(gdb) print mark_stack_top[0]
$5 = {mse_start = 0xeafff1f0, mse_descr = 83889680}
(gdb) print mark_stack_top[1]
$6 = {mse_start = 0x0, mse_descr = 0}
(gdb) call GC_dump()
***Static roots:
>From 0x235d4 to 0x34170
>From 0x5005af80 to 0x50065e08 (temporary)
>From 0x50078160 to 0x500784d0 (temporary)
>From 0x5008fde0 to 0x500906d0 (temporary)
>From 0x501c8320 to 0x501d3558 (temporary)
Total size: 161980
***Heap sections:
Total heap size: 65536
Section 0 from 0x45000 to 0x55000 0/16 blacklisted
***Free blocks:
Free list 16 (Total size 65536):
0x45000 size 65536 not black listed
Total of 65536 bytes on free list
***Blocks in use:
(kind(0=ptrfree,1=normal,2=unc.,3=stubborn):size_in_bytes, #_marks_set)
blocks = 0, bytes = 0
(gdb) print GC_stackbottom
$7 = 0xf0000000 <Address 0xf0000000 out of bounds>
(gdb) print $sp
$8 = -352328696
(gdb) print $fp
$9 = -352328440
(gdb) print descr
$10 = 83890188
(gdb) print mark_stack
$11 = (struct GC_ms_entry *) 0x3b0a8
(gdb) print mark_stack_top
$12 = (struct GC_ms_entry *) 0x3b0e0
(gdb) quit
The program is running. Exit anyway? (y or n) y
I don't quite know what to do to further track this down so if
something more is to be done, please let me now what to do and I'll do
it for you.
Cheers,
/ChJ