From: Nicolas Blanc <nicolas.blanc@intel.com>
To: gdb-patches@sourceware.org
Cc: Nicolas Blanc <nicolas.blanc@intel.com>
Subject: [PATCH 0/3] remove-symbol-file
Date: Tue, 16 Apr 2013 11:22:00 -0000 [thread overview]
Message-ID: <1366098721-18302-1-git-send-email-nicolas.blanc@intel.com> (raw)
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
next reply other threads:[~2013-04-16 7:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-16 11:22 Nicolas Blanc [this message]
2013-04-16 11:51 ` [PATCH 2/3] Test adding and removing a symbol file at runtime Nicolas Blanc
2013-04-24 12:18 ` Tom Tromey
2013-04-24 12:18 ` Tom Tromey
2013-04-16 12:18 ` [PATCH 1/3] Command remove-symbol-file Nicolas Blanc
2013-04-16 13:25 ` [PATCH 1/3] Added command remove-symbol-file Nicolas Blanc
2013-04-22 13:32 ` Yao Qi
2013-04-24 18:54 ` Tom Tromey
2013-04-25 19:24 ` Blanc, Nicolas
2013-04-25 20:07 ` Tom Tromey
2013-04-26 14:13 ` Yao Qi
2013-04-26 20:23 ` Pedro Alves
2013-04-30 7:30 ` Blanc, Nicolas
2013-04-30 9:28 ` Pedro Alves
2013-04-30 16:53 ` Blanc, Nicolas
2013-05-08 17:56 ` Pedro Alves
2013-05-28 11:25 ` Blanc, Nicolas
2013-04-16 14:18 ` [PATCH 3/3] Documentation for the remove-symbol-file command Nicolas Blanc
2013-04-16 15:12 ` Eli Zaretskii
2013-04-24 9:22 ` [PATCH 0/3] remove-symbol-file Tom Tromey
2013-04-24 20:40 ` Blanc, Nicolas
2013-04-24 20:49 ` Pedro Alves
2013-04-25 17:25 ` Blanc, Nicolas
2013-04-26 19:13 ` Pedro Alves
2013-04-24 17:46 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1366098721-18302-1-git-send-email-nicolas.blanc@intel.com \
--to=nicolas.blanc@intel.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox