This is the mail archive of the gdb-patches@sourceware.org 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]

[PATCH 0/3] remove-symbol-file


This patch adds a command for removing individual symbol files.

The symbol-file command without parameter can be used to clear
all symbol-file information. This command is not practical if
the user needs to remove just one file, however.

Apple provides its own remove-symbol-file command but the code
was not upstreamed [1]. I provide here my own implementation.
There are two main differences between the command from Apple and
mine:

1) The remove-symbol-file command from Apple takes as parameter
   the file to remove whereas this implementation requires the load
   address of the file. Hence, this command is able to unload
   symbol for files that have been loaded multiple times.

2) This implementation sends a notification when an object file is
   deleted. The notification mechanism simplifies the implementation of
   the command because it is then the responsibility of the observers
   to clean dangling references. GDB removes shared libraries in this
   way already.

I would appreciate feedback from the maintainers of GDB at Apple to
help upstream a command that satisfies the community at large.

GDB can currently interface with one shared-library loader and one
JIT loader at runtime. Combined with Python, add-symbol-file and
remove-symbol-file can be used for supporting additional custom library
loaders with greater flexibility. This is the motivation for this work.

Regards,

Nicolas Blanc


[1]: http://www.opensource.apple.com/source/gdb/gdb-1822/




Nicolas Blanc (3):
  Command remove-symbol-file.
  Test adding and removing a symbol file at runtime.
  Documentation for the remove-symbol-file command.

 gdb/breakpoint.c                       |   65 ++++++-
 gdb/doc/gdb.texinfo                    |   15 ++-
 gdb/doc/observer.texi                  |    4 +
 gdb/objfiles.c                         |    3 +
 gdb/printcmd.c                         |   11 +-
 gdb/solib.c                            |   26 +++
 gdb/symfile.c                          |   63 ++++++-
 gdb/testsuite/gdb.base/sym-file-lib.c  |   21 ++
 gdb/testsuite/gdb.base/sym-file-main.c |  369 ++++++++++++++++++++++++++++++++
 gdb/testsuite/gdb.base/sym-file.exp    |  155 +++++++++++++
 10 files changed, 721 insertions(+), 11 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/sym-file-lib.c
 create mode 100644 gdb/testsuite/gdb.base/sym-file-main.c
 create mode 100644 gdb/testsuite/gdb.base/sym-file.exp

-- 
1.7.6.5


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