This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
examining a core dump on a machine with other base addresses in shared libraries
- From: Drago Krznaric <drago dot krznaric at spray dot se>
- To: gdb at sourceware dot org
- Date: Wed, 27 May 2009 22:52:35 +0200
- Subject: examining a core dump on a machine with other base addresses in shared libraries
- Auth-sender: drago.krznaric@spray.se
Hi,
I have a program and a core dump created on machine A that I copy to
machine B. I can open the core dump and get a nice backtrace on A but
not on B. The reason appears to be that the shared libraries on A and B
have different base addresses. They are otherwise exactly identical in
hardware and software (RedHat 4). I guess that the addresses are
different because of the prelink cron job or "address space layout
randomization". Normally I don't have access to machine A, so I would
really want to open the core dump on B without having to copy all used
shared libraries from A to B.
Does anybody know if and how this can be done?
When opening core dump with gdb-6.8 on B machine, I get something like:
warning: .dynamic section for "/usr/lib/libstdc++.so.6" is not at the
expected address (wrong library or version mismatch?)
warning: .dynamic section for "/lib/tls/libm.so.6" is not at the
expected address
warning: difference appears to be caused by prelink, adjusting
expectations
...
and when I do a backtrace I get something useless as:
#0 0x003d17a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x004117d5 in __longjmp () from /lib/tls/libc.so.6
#2 0x00000000 in ?? ()
(gdb)
Thanks in advance,
Drago