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]
Other format: [Raw text]

Re: shared library support hookin the remote.c


Kevin, how does/should the existing remote GNU/Linux target work?
If we ignore the #ifdef SOLIB* code used during the initial attach, what components interact to maintain the shlibs?


Stephen, have you tried getting GDB to work native on your system?

There are several ways to dissect this so its important to identify all the components and their interactions.

Andrew

PS:
- I just deprecated all the existing ..._hook () calls :-)
- have a look at, and think about the File I/O packets, they effectively inject events into GDB.


On Mon, 28 Jun 2004 18:55:45 -0700
Stephen & Linda Smith <ischis2@cox.net> wrote:


Kevin Buettner wrote:


> How does the remote target communicate the necessary details to GDB
>
>then?
>
>It sounds to me as though you want to add the hook so that you can add
>a private protocol extension.
>
>IMO, it's better to hash out the details of a public remote protocol
>extension for shared library support.
>

That would be my preference, but I haven't figured out a generic way. Here is the basic problem is that the
remote protocol has no notion of shared libraries or of segments (TEXT, BSS, DATA, etc). Can someone
on this list think of a generic way of getting this data?


If you can have the stub report both the original and adjusted address
for the segments of a particular load object, GDB should be able to
determine which section(s) those segments belong to.  (Take a look at the
FR-V shared library support.)


A second problem is that the number and names of the segments doesn't appear to be consistent. It was for this
reason that I was thinking of making the protocol a target specific one that supports the solib interface.


I wouldn't worry about the names; I don't think there'll be any need to
communicate those.  As for the number of segments, the protocol should
be designed to handle an arbitrary number of segments.


>... I'd like to first understand how communication of shared library information
>between GDB and the stub is accomplished and what the protocol looks
>like.
>


I assume you don't mean how the published protocol works.


What I didn't in the passed, was to use a q packet. If I read the spec correctly was to use that packet type to find out if
there were any libraries and to find out the segment addersses.


I don't mind making it a public interface, but from the conversation three years ago, I got the idea that the maintainers
weren't especially keen on making it part of the general (i.e remote.c) code base.


I don't recall.  However, if the protocol is general enough to be usable
by a variety of targets, I see no reason for not including it in remote.c.
After all, qSymbol support is present in remote.c and that's only used for
some thread implementations.  It would be good to get buy-in from the
maintainer of remote.c before you start though.

Kevin



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