[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