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]

enable_break() in solib-svr4.c


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. 

	 paul


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