[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: core dump triggered by garbage collection (?)

From: Richard Stallman
Subject: Re: core dump triggered by garbage collection (?)
Date: Sun, 07 Sep 2003 16:23:02 -0400

    In all three cases, the strings that appear before the corruption are
    numbers.  Since the crash always seems to happen when I try to read mail
    with VM, I assume those numbers are the message numbers in the VM summary
    buffer.  Significant?  Helpful??  I dunno...

It won't be easy to figure out the bug from this clue, but it is worth
a try.

Maybe the string that VM makes just after it makes the number
is getting clobbered somehow.  Can you take a look at a live process
running VM when it has not crashed, and see what's in the string
right after the message number?  Also take a look at the code
of VM to see what code makes that string, and what that string is
used for.

    0xa055a04:      0x00000000      0x0043c143      0x49f28038      0x00000006
    0xa055a14:      0x40000000      0x00000032      0x0043c144      0x49f28038
    0xa055a24:      0x00000006      0x40000000      0x00000032      0x0043c145
    0xa055a34:      0x49f28038      0x00000006      0x40000000      0x0000002e
    0xa055a44:      0x0043c146      0x49f28038      0x00000006      0x40000000
    0xa055a54:      0x0000002e      0x00000000      0x00000000      0x00000006
    0xa055a64:      0x40000000      0x00000020      0x00005480      0x489f3ce0

Is 0x43c143 the address of something?  If so, what?

    In the middle of all this is the string "which is sent to the s", which
    probably isn't helpful for debugging, but it does sound kind of like an
    important clue from some bad mystery novel.

If it is part of what was written erroneously into the block,
it may teach us something, especially if you can find the place
that it came from.

If it is data in a string block, then it could be just some string
text that was not clobbered.  In that case it may not be relevant.

    Anyway... a lot of data here.  I don't know if any of it is at all helpful.
    Please advise on where I might go from here.  One question: I see in
    alloc.c that there is code ifdefed with GC_CHECK_STRING_BYTES.  Presumably
    defining this symbol enables additional checks during garbage collection
    (how *did* I figure that out?? :-).  Would it be helpful for me to compile
    a version with this flag set, given that the crash does happen with some

I don't know, but I think it is worth a try.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]