This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: enable_break() in solib-svr4.c


On Mon, 15 Aug 2005 16:20:59 -0400
Paul Koning <pkoning@equallogic.com> wrote:

> The code in solib-svr4.c in several places seems to assume that the
> shared lib loader is linked to base address 0, loaded somewhere else,
> and relocated at runtime -- and ditto for other libraries. 
> 
> I've just been battling a bug in enable_break, where the load address
> of the shared lib loader is added to a symbol address from the
> solib_break_names[] list.  That produces nonsense on NetBSD/MIPS,
> because ldd.elf_so is linked to 5ffe0000 so that address is added to
> the symbol address (5ffexxxx).
> 
> As a hack solution I have it add the load address only if the symbol
> value is less than the load address.  It seems to me the correct way
> to cure this is to compute the relocation delta -- the difference
> between the load address and the as-linked VMA of the start of the
> library (from the program headers).  I did something like this in
> svr4_relocate_section_addresses. 

I too would like to see your solution, hack or not.

Is this issue different than the ones already discussed as part of the
following thread?

http://sources.redhat.com/ml/gdb/2002-12/msg00266.html

Kevin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]