checkpointing dumps core
Matthew Dillon
dillon at apollo.backplane.com
Thu Nov 18 12:38:42 PST 2004
:On Thu, Nov 18, 2004 at 02:06:08AM -0800, Matthew Dillon wrote:
:> It is also not writing out a vnode record for the segment because the
:> RTLD loader had temporarily remapped it read-write, done a bunch of
:> relocations, and then remapped it read-only again. This changed
:> the primary backing object from OBJT_VNODE to OBJT_DEFAULT->OBJT_VNODE,
:> and the ELF coredump code does not write out vnode records for
:> vm_map_entry records whos primary backing is not OBJT_VNODE.
:
:Can you tell me which symbols it tried to relocate? This is a bug we must
:fix.
:
:Joerg
I can't tell. I very carefully added some write(2, ...)'s to
rtld-elf's reloc_non_plt and I got this:
00000000 ff ff ff ff 44 b9 05 28 08 00 00 00 ff ff ff ff |....D..(........|
00000010 4c b9 05 28 08 00 00 00 ff ff ff ff 54 b9 05 28 |L..(........T..(|
00000020 08 00 00 00 ff ff ff ff 58 b9 05 28 08 00 00 00 |........X..(....|
00000030 ff ff ff ff 5c b9 05 28 08 00 00 00 ff ff ff ff |....\..(........|
00000040 60 b9 05 28 08 00 00 00 ff ff ff ff 64 b9 05 28 |`..(........d..(|
00000050 08 00 00 00 ff ff ff ff 68 b9 05 28 08 00 00 00 |........h..(....|
00000060 ff ff ff ff 6c b9 05 28 08 00 00 00 ff ff ff ff |....l..(........|
00000070 70 b9 05 28 08 00 00 00 ff ff ff ff 74 b9 05 28 |p..(........t..(|
00000080 08 00 00 00 ff ff ff ff a8 b9 05 28 08 00 00 00 |...........(....|
The ffffffff is a marker. the next field is the relocation target
address (e.g. 0x2805b944), and the third field is the relocation type,
which seems to be R_386_RELATIVE.
It should be possible to use objdump to dump out libc.so and find
the relocations.
objdump --dynamic-reloc /usr/lib/libc.so
I don't know what the output is supposed to look like :-)
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Users
mailing list