This is the mail archive of the gdb-patches@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]

[RFA/solib-svr4] use AT_BASE auxiliary entry to compute load base address


Hello,

I came across an unexpected issue on sparc-solaris 2.9, where I tried
to attach to an Ada program. When I later did a "continue", the debugger
error'ed out saying:

    (gdb) c
    Continuing.
    Warning:
    Cannot insert breakpoint -1.
    Error accessing memory address 0xff36159c: I/O error.

Breakpoint -1 here corresponds to the shlib breakpoint:

    (gdb) maintenance info breakpoints 
    Num Type           Disp Enb Address    What
    -1  shlib events   keep y   0xff36159c 

I think that the problem is that we're computing the wrong base load
address in solib-svr4.c. As it turned out, there was a "TODO" hint
added by Daniel that suggested using the AT_BASE auxiliary entry.
The attached patch attempts to do that.

2007-09-12  Joel Brobecker  <brobecker@adacore.com>

        * solib-svr4.c: Add include of "auxv.h".
        (enable_break): Use the AT_BASE auxiliary entry if available.
        * Makefile.in (solib-svr4.o): Update dependencies.

Tested on x86-linux, no regression. Currently testing on sparc-solaris,
but it's taking a loooong time because sigstep is keeps timing out to
death. It fixes the issue above, and I'm confident the results will be OK.

OK to apply?

Thanks,
-- 
Joel

Attachment: solib-svr4.diff
Description: Text document


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