SIGSEGV in GC_mark_from
Boehm, Hans
hans_boehm@hp.com
Thu Sep 6 10:25:00 GMT 2001
Is the object in question perhaps part of a free list? Are you trying to
get thread-local allocation working, or is the tree basically unmodified?
Is the GC up-to-date?
There are some known subtle issues related to gcj style descriptors and free
lists. In particular, the collector may see a pointer to a free list (due
to a misidentified pointer), and treat the free list link as a vtable
pointer. The claim is that this is OK (though it wasn't always), since free
lists for gcj-style objects are cleared, and hence either the free list link
will be null, or the "GC descriptor" slot will be 0 in this case. I believe
I thought about all the issues, but I wouldn't be incredibly surprised if
there is a yet-to-be-discovered race surrounding this. In any case, you
have to keep this in mind if you are changing the code.
Hans
> -----Original Message-----
> From: Jeff Sturm [ mailto:jsturm@one-point.com ]
> Sent: Wednesday, September 05, 2001 10:41 PM
> To: Boehm, Hans
> Cc: java@gcc.gnu.org
> Subject: RE: SIGSEGV in GC_mark_from
>
>
>
>
> On Wed, 5 Sep 2001, Boehm, Hans wrote:
> > I assume this is the trunk?
>
> Yes.
>
> > You might check that current_p points to an object which is properly
> > described, i.e. has a pointer to a proper vtable.
>
> The first word at current_p points to another heap object.
> It's not yet
> clear to me whether current_p is invalid or it was somehow
> overwritten.
>
> > Failing that, probably the only real way to debug this is
> to insert code
> > that looks for absurd descriptors at various places, i.e.
> anything huge with
> > the 4 low order bits zero. I would start by inserting such
> a test around
> > line 622.
>
> That helps, thanks.
>
> Jeff
>
More information about the Java
mailing list