This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
That stack pointer value doesn't look a lot like GC_stackbottom. Just for grins, could you try the attached (completely untested) patch? This makes linux/SPARC determine GC_stackbottom in the same way as on other Linux platforms, i.e. it first cheats and looks for a private glibc symbol, and reads the stack base from /proc if that fails. Hans > -----Original Message----- > From: Christian Jönsson [mailto:c.christian.joensson@telia.com] > Sent: Sunday, April 14, 2002 1:16 PM > To: Boehm, Hans > Cc: Tom Tromey; java@gcc.gnu.org > Subject: Re: gcc-3.1 2002-04-03 libjava failures on sparc-linux? > > > On Wed, Apr 10, 2002 at 11:11:19AM -0700, Boehm, Hans wrote: > > The new trace looks very similar to the old one to me. > There's still a lot > > of space between "bottom" and "top" in GC_push_all_eager. > Does the stack > > base look plausible? If you stop the program in main(), what's $sp? > > > > Hans > > Well, here's what's in there for today's (Sun Apr 14 07:33:16 > UTC 2002): > > Current directory is > /share2/gcc-rel/objdir/sparc-linux/libjava/testsuite/ > 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) break main > Breakpoint 1 at 0x10ac0: file /tmp/cctyn6m2.i, line 10. > (gdb) r > Starting program: > /share2/gcc-rel/objdir/sparc-linux/libjava/testsuite/cxxtest > > Breakpoint 1, main (argc=1, argv=0xe8ffec74) at /tmp/cctyn6m2.i:10 > 10 /tmp/cctyn6m2.i: No such file or directory. > in /tmp/cctyn6m2.i > (gdb) print $sp > $1 = -385881272 > (gdb) c > Continuing. > > Program received signal SIGSEGV, Segmentation fault. > 0x507005f0 in GC_push_all_eager (bottom=0xe8ffe634 "š\031@", > top=0xf0000000 <Address 0xf0000000 out of bounds>) > at /share2/gcc-rel/gcc/boehm-gc/mark.c:1349 > (gdb) bt > #0 0x507005f0 in GC_push_all_eager (bottom=0xe8ffe634 "š\031@", > top=0xf0000000 <Address 0xf0000000 out of bounds>) > at /share2/gcc-rel/gcc/boehm-gc/mark.c:1349 > #1 0x507006e8 in GC_push_all_stack_partially_eager ( > bottom=0xe8ffe634 "š\031@", > top=0xf0000000 <Address 0xf0000000 out of bounds>, > cold_gc_frame=0xe8ffe81c "") at > /share2/gcc-rel/gcc/boehm-gc/mark.c:1386 > #2 0x5070251c in GC_push_current_stack (cold_gc_frame=0xe8ffe81c "") > at /share2/gcc-rel/gcc/boehm-gc/mark_rts.c:457 > #3 0x50702684 in GC_push_roots (all=1, cold_gc_frame=0xe8ffe81c "") > at /share2/gcc-rel/gcc/boehm-gc/mark_rts.c:571 > #4 0x506fe380 in GC_mark_some (cold_gc_frame=0xe8ffe81c "") > at /share2/gcc-rel/gcc/boehm-gc/mark.c:322 > #5 0x506f4548 in GC_stopped_mark (stop_func=0x506f36c8 > <GC_never_stop_func>) > at /share2/gcc-rel/gcc/boehm-gc/alloc.c:489 > #6 0x506f40d0 in GC_try_to_collect_inner ( > stop_func=0x506f36c8 <GC_never_stop_func>) > at /share2/gcc-rel/gcc/boehm-gc/alloc.c:350 > #7 0x50703840 in GC_init_inner () at > /share2/gcc-rel/gcc/boehm-gc/misc.c:673 > #8 0x507032ac in GC_init () at > /share2/gcc-rel/gcc/boehm-gc/misc.c:455 > #9 0x506fa4f0 in GC_init_gcj_malloc (mp_index=0, mp=0x506f063c) > at /share2/gcc-rel/gcc/boehm-gc/gcj_mlc.c:60 > #10 0x506f1298 in _Jv_InitGC() () at > /share2/gcc-rel/gcc/libjava/boehm.cc:465 > #11 0x5053e914 in _Jv_CreateJavaVM(void*) () > at /share2/gcc-rel/gcc/libjava/prims.cc:892 > #12 0x5053ed38 in _Jv_RunMain(java::lang::Class*, char > const*, int, char const**, bool) (klass=0x2101c, name=0x0, > argc=1, argv=0xe8ffec74, is_jar=false) > at /share2/gcc-rel/gcc/libjava/prims.cc:982 > #13 0x00010aec in main (argc=1, argv=0xe8ffec74) at /tmp/cctyn6m2.i:11 > (gdb) print $sp > $2 = -385882800 > (gdb) call GC_dump() > ***Static roots: > From 0x20e58 to 0x21498 > From 0x50039b38 to 0x50039d58 (temporary) > From 0x500df7c8 to 0x500f3ff8 (temporary) > From 0x50186118 to 0x50188470 (temporary) > From 0x5019fed0 to 0x501a07b8 (temporary) > From 0x502d7000 to 0x502e21a8 (temporary) > From 0x50796970 to 0x508ae1b0 (temporary) > From 0x508cbc68 to 0x508cd3e8 (temporary) > From 0x508de000 to 0x508de370 (temporary) > Total size: 1294760 > > ***Heap sections: > Total heap size: 65536 > Section 0 from 0x44000 to 0x54000 0/16 blacklisted > > ***Free blocks: > Free list 16 (Total size 65536): > 0x44000 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) c > Continuing. > > Program terminated with signal SIGSEGV, Segmentation fault. > The program no longer exists. > (gdb) quit > > Debugger finished > > Cheers, > > /ChJ >
Attachment:
sparc.diff
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |