This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Freeze in GC_suspend_handler
- From: Daniel Bonniot <Daniel dot Bonniot at inria dot fr>
- To: "Boehm, Hans" <hans_boehm at hp dot com>
- Cc: java at gcc dot gnu dot org
- Date: Thu, 13 Jun 2002 13:06:20 +0200
- Subject: Re: Freeze in GC_suspend_handler
- References: <40700B4C02ABD5119F000090278766443BF3FC@hplex1.hpl.hp.com>
Hi,
I finally managed to compile libgcj without optimization (I thought
setting CFLAGS, CXXFLAGS and BOOT_CFLAGS in the environment would do,
but I had to modify a Makefile.in, is this normal? Maybe this should be
documented. Or is it?).
Here is the debugging info:
Boehm, Hans wrote:
What's field -> u.addr or *field when the dereference segfaults? Can you get gdb to print that?
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 18689)]
0x404056ba in _Jv_MarkObj (addr=0x86c1310, msp=0x827d3a8, msl=0x8285000)
at ../../../gcc/libjava/boehm.cc:193
193 jobject val = *(jobject*) field->u.addr;
Current language: auto; currently c++
(gdb) info locals
val = (class Object *) 0x82206f0
field = (_Jv_Field *) 0x880df10
i = 1
c = (class Class *) 0x86c1310
mark_stack_ptr = (GC_ms_entry *) 0x827d3a8
mark_stack_limit = (GC_ms_entry *) 0x8285000
obj = (Object *) 0x86c1310
dt = (_Jv_VTable *) 0x404ff408
klass = (Class *) 0x8269ee0
p = 0x0
(gdb) print *field
$1 = {name = 0x8294e40, type = 0x826a640, flags = 8, bsize = 0, u = {
boffset = 0, addr = 0x0}}