[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
regularity?
I don't know, but I think it is worth a try.