This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Dwarf2 relocations
- From: Michal Ludvig <mludvig at suse dot cz>
- To: gdb at sources dot redhat dot com
- Date: Wed, 15 May 2002 12:31:03 +0200
- Subject: Dwarf2 relocations
- Organization: SuSE CR
Hi all,
I have a problem with relocating FDE entries from shared libraries. I
have for example a function cypptrs(), that is stored in libml.so.1.
Objdump gives this output:
0000000000000b40 <cpyptrs>:
b40: 48 8b 07 mov (%rdi),%rax
b43: 48 89 04 25 00 00 00 mov %rax,0x0
b4a: 00
b4b: c3 retq
When the program is running, this library is stored on a real address:
(gdb) disassemble cpyptrs
Dump of assembler code for function cpyptrs:
0x2a95669b40 <cpyptrs>: mov (%rdi),%rax
0x2a95669b43 <cpyptrs+3>: mov %rax,0x0
0x2a95669b4b <cpyptrs+11>: retq
End of assembler dump.
However .debug_frame FDE entries point to original (short) addresses.
How do I find out the offset that I must add to all symbols from
debug_frame to let them point to real addresses? Perhaps it is already
computed and stored somewhere. But where? Thanks for any hints.
Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* +420 2 9654 5373 * http://www.suse.cz