This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: GDB solib interface
On Mon, 2006-12-04 at 15:12 -0700, Smith, Stephen (SWCOE) wrote:
> I'm sorry - way back when Kevin asked that I investigate this. So now I
> am.
>
> Anyway - Pretend that my "custom" GDB remote.c has been told that a
> library has been loaded - what would I need to write to use the solib
> interface? Another way of asking the question would be, what would I
> need to add to my remote interface file (remote.c) to have it load the
> symbols.
Presumably something like solib_add() or add_symbol_file().
Your back-end (eg. remote target) should give you the name
of a shared library (with or without path), and then gdb
has built-in schemes for finding it.
If your target libraries are different from your host libraries
(which they usually are), you will need to tell GDB where to
find them (on the host file system), using the commands
set solib-search-path
and
set solib-absolute-prefix
Daniel, I would have assumed that this stuff was
working with linux-x-linux and gdbserver?
>
> I am not looking for a command, per se, just trying to figure out what
> functions/structures etc I need to write to have my "custom" GDB load
> the libraries symbols.
>
> -----Original Message-----
> From: Daniel Jacobowitz [mailto:drow@false.org]
> Sent: Monday, December 04, 2006 2:58 PM
> To: Smith, Stephen (SWCOE)
> Cc: General GDB Mailing List
> Subject: Re: GDB solib interface
>
> On Mon, Dec 04, 2006 at 02:55:28PM -0700, Smith, Stephen (SWCOE) wrote:
> > I am running GDB to debug a remote application. If I find that a
> shared
> > library has been loaded, I would like to use the solib interface to
> load
> > the appropriate shared library symbols.
> >
> > So lets assume that I have the file name of the shared library, that
> was
> > just loaded, how do I inform the solib subsystem that to load the
> > symbols.
>
> There's no command for this. The solib system is designed for targets
> where the target can report that the library was loaded, or where GDB
> can otherwise detect it. If you're willing to have a custom GDB for
> your platform, you might be able to make it examine the shared library
> table in your target, assuming there is one.
>