gcc-3.1 2002年04月03日 libjava failures on sparc-linux?
Boehm, Hans
hans_boehm@hp.com
Mon Apr 15 20:03:00 GMT 2002
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
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sparc.diff
Type: application/octet-stream
Size: 510 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java/attachments/20020415/a72472e2/attachment.obj>
More information about the Java
mailing list