This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug backtrace/15032] GNU/Linux backtrace fails to use eh_frameinformation when built with --enable-64-bit-bfd
- From: "jkain at nvidia dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Fri, 18 Jan 2013 21:25:41 +0000
- Subject: [Bug backtrace/15032] GNU/Linux backtrace fails to use eh_frameinformation when built with --enable-64-bit-bfd
- Auto-submitted: auto-generated
- References: <bug-15032-4717@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=15032
--- Comment #4 from Joseph Kain <jkain at nvidia dot com> 2013-01-18 21:25:41 UTC ---
I stepped through read_encoded_value again looking for any relocation. Note
the values have changed due to changes to the inferior.
When base is computed in the DW_EH_PE_pcrel case:
* bfd_get_section_vma => 0xbfd80. This matches the value of the VMA of the
.eh_frame section as reported by objdump -x.
* (buf - unit->dwarf_frame_buffer) => 0x20. I think this seems reasonable for
the first FDE.
* base = 0xbfda0.
When the final value is computed in the DW_EH_PE_udata4 case:
* bfd_get_32() => 0xfff7bbe0. bfd_read_32() reads from offset 0xbfda0 from the
unit. I confirmed that buf points to offset 0xbfda0 in the correct .so via
/proc/<pid>/maps. I also confirmed with a hex editor that the value 0xfff7bbe0
appears at offset 0xbfda0 in the .so's image on disk. I don't think there was
any relocation done.
* base + bfd_get_32 (...) => 0x10003b980.
So I don't think there was any relocation done. I also don't see any
relocation entries in the .so for the offset 0xbfda0? Should there be one?
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.