From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31272 invoked by alias); 16 Apr 2013 07:52:28 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 31261 invoked by uid 89); 16 Apr 2013 07:52:27 -0000 X-Spam-SWARE-Status: No, score=-5.0 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD autolearn=ham version=3.3.1 Received: from mga01.intel.com (HELO mga01.intel.com) (192.55.52.88) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 16 Apr 2013 07:52:26 +0000 Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 16 Apr 2013 00:52:25 -0700 X-ExtLoop1: 1 Received: from irvmail001.ir.intel.com ([163.33.26.43]) by fmsmga002.fm.intel.com with ESMTP; 16 Apr 2013 00:52:24 -0700 Received: from ulslx001.iul.intel.com (ulslx001.iul.intel.com [172.28.207.63]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id r3G7qN0K003730; Tue, 16 Apr 2013 08:52:23 +0100 Received: from ulslx001.iul.intel.com (localhost [127.0.0.1]) by ulslx001.iul.intel.com with ESMTP id r3G7qN7Q018343; Tue, 16 Apr 2013 09:52:23 +0200 Received: (from nblanc@localhost) by ulslx001.iul.intel.com with id r3G7qMH9018339; Tue, 16 Apr 2013 09:52:22 +0200 From: Nicolas Blanc To: gdb-patches@sourceware.org Cc: Nicolas Blanc Subject: [PATCH 0/3] remove-symbol-file Date: Tue, 16 Apr 2013 11:22:00 -0000 Message-Id: <1366098721-18302-1-git-send-email-nicolas.blanc@intel.com> X-SW-Source: 2013-04/txt/msg00458.txt.bz2 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