This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [ppc64-linux] gdbarch hook to find true execution entry point
- From: Kevin Buettner <kevinb at redhat dot com>
- To: Jim Blandy <jimb at redhat dot com>, gdb-patches at sources dot redhat dot com
- Date: Wed, 11 Jun 2003 16:11:05 -0700
- Subject: Re: [ppc64-linux] gdbarch hook to find true execution entry point
- References: <vt24r2wu4ty.fsf@zenia.home>
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