cvs commit: src/gnu/usr.bin/gdb/kgdb kgdb.h kld.c trgt.c

Doug Rabson dfr at rabson.org
Wed Jan 30 01:47:10 PST 2008


On 29 Jan 2008, at 23:44, John Baldwin wrote:

> jhb         2008-01-29 23:44:34 UTC
>
>  FreeBSD src repository
>
>  Modified files:
>    gnu/usr.bin/gdb/kgdb kgdb.h kld.c trgt.c
>  Log:
>  - Rework the kld support to hook into GDB's shared library support.
>    kgdb(8) now treats kld's as shared libraries relative to the kernel
>    "binary".  Thus, you can use 'info sharedlibrary' to list the kld's
>    along with 'sharedlibrary' and 'nosharedlibrary' to manage symbol
>    loading and unloading.  Note that there isn't an easy way to  
> force GDB
>    to use a specific path for a shared library.  However, you can use
>    'nosharedlibrary' to unload all the klds and then use  
> 'sharedlibrary'
>    to load specific klds where it gets the kld correct and use
>    'add-kld' for the kld's where the default open behavior doesn't  
> work.
>    klds opened via 'sharedlibrary' (and during startup) do have their
>    sections listed in 'info files'.
>  - Change the 'add-kld' command to use filename completion to  
> complete its
>    argument.

This was how it used to work long ago (I forget exactly how long). I  
had things set up so that GDB's standard ELF shared library code would  
find KLDs automatically - you can see remnants of this in link_elf.c  
in 'ifdef GDB' sections which build an RTLD-like list of loaded files  
which GDB looked for starting at the global symbol r_debug.



More information about the cvs-src mailing list