This is the mail archive of the gdb@sources.redhat.com 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]

Re: GDB and shared libraries


On Feb 26,  5:40pm, Stephen Smith wrote:

> Kevin Buettner wrote:
> 
> >
> >     1) Modify your shared library implementation so that solib-svr4.c
> >        (in the gdb sources) will work for you.  Recall that in private
> >        email I suggested defining SVR4_FETCH_LINK_MAP_OFFSETS for your
> >        target.  This is easy to do; just take a look at struct
> >        r_debug and struct link_map and figure out the offsets from
> >        the beginning of the struct to each member n the struct.
> >        Then construct a small function to fill in the fields of
> >        GDB's struct link_map_offsets.  You may even be able to
> >        use the example at
> >
> >            http://sources.redhat.com/ml/gdb-patches/2000-10/msg00147.html
> >
> >        verbatim.
>
> I take it you meant, Modify your shared library implementation of gdb...
> 
> Is that correct?

No.

>From your other email (including some of the private ones) it sounded
to me like you had the source to the OS and you could modify the
dynamic loader.  So I meant for the above to be split up into two
parts:

    a) OS / Library side work in making the dynamic loader behave
       like other SVR4 shared library implementations.

    b) In GDB, define SVR4_FETCH_LINK_MAP_OFFSETS for your target.

If you can do (a), then doing (b) will be trivial.  If you look over
some of my past email, you'll see that I've sketched out what needs
to be done for (a).

If you end up going the other route of adding a new solib backend
for GDB, you may still end up doing some work in the dynamic loader
anyway.  Basically, your dynamic loader and GDB need to agree on
an interface for 1) notifying GDB of when a shared object has been
loaded/unloaded, and 2) obtaining the names of the currently loaded
shared objects and their load addresses.

Kevin


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