[ppc64-linux] gdbarch hook to find true execution entry point
Kevin Buettner
kevinb@redhat.com
Wed Jun 11 23:11:00 GMT 2003
On Jun 11, 8:22am, Jim Blandy wrote:
> Subject: [ppc64-linux] gdbarch hook to find true execution entry point
>
> 2003-06-11 Jim Blandy <jimb@redhat.com>
>
> * gdbarch.sh (gdbarch_bfd_entry_point): New gdbarch method.
> * arch-utils.c (generic_bfd_entry_point): New function.
> * arch-utils.h (generic_bfd_entry_point): New declaration.
> * gdbarch.c, gdbarch.h: Regenerated.
> * solib-svr4.c (enable_break): Call it, instead of accessing
> tmp_bfd->start_address directly.
>
[...]
> Index: gdb/solib-svr4.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/solib-svr4.c,v
> retrieving revision 1.32.8.2
> diff -c -r1.32.8.2 solib-svr4.c
> *** gdb/solib-svr4.c 11 Jun 2003 13:00:34 -0000 1.32.8.2
> --- gdb/solib-svr4.c 11 Jun 2003 13:16:32 -0000
> ***************
> *** 1022,1028 ****
> the current pc (which should point at the entry point for the
> dynamic linker) and subtracting the offset of the entry point. */
> if (!load_addr_found)
> ! load_addr = read_pc () - tmp_bfd->start_address;
>
> /* Record the relocated start and end address of the dynamic linker
> text and plt section for svr4_in_dynsym_resolve_code. */
> --- 1022,1029 ----
> the current pc (which should point at the entry point for the
> dynamic linker) and subtracting the offset of the entry point. */
> if (!load_addr_found)
> ! load_addr = (read_pc ()
> ! - generic_bfd_entry_point (current_gdbarch, tmp_bfd));
>
> /* Record the relocated start and end address of the dynamic linker
> text and plt section for svr4_in_dynsym_resolve_code. */
Shouldn't enable_break() in solib-svr4.c be calling
gdbarch_bfd_entry_point()?
What cases do you know of where calling bfd_get_start_address() is
insufficient for finding the start address? I'm wondering if we
need a gdbarch hook at all...
Kevin
More information about the Gdb-patches
mailing list