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.

Reply via email to