From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6758 invoked by alias); 14 Nov 2008 20:46:58 -0000 Received: (qmail 6669 invoked by uid 22791); 14 Nov 2008 20:46:57 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 14 Nov 2008 20:46:22 +0000 Received: from wpaz5.hot.corp.google.com (wpaz5.hot.corp.google.com [172.24.198.69]) by smtp-out.google.com with ESMTP id mAEKkKjI023910 for ; Fri, 14 Nov 2008 12:46:20 -0800 Received: from localhost (elbrus.corp.google.com [172.18.116.17]) by wpaz5.hot.corp.google.com with ESMTP id mAEKkHKA027116; Fri, 14 Nov 2008 12:46:18 -0800 Received: by localhost (Postfix, from userid 74925) id A4A533A6B15; Fri, 14 Nov 2008 12:46:17 -0800 (PST) To: gdb-patches@sourceware.org Cc: ppluzhnikov@google.com Subject: [RFA] [patch] 'info symbol' to print more info Message-Id: <20081114204617.A4A533A6B15@localhost> Date: Sat, 15 Nov 2008 16:15:00 -0000 From: ppluzhnikov@google.com (Paul Pluzhnikov) X-IsSubscribed: yes 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 X-SW-Source: 2008-11/txt/msg00373.txt.bz2 Greetings, Currently, 'info symbol' and 'maintenance translate-address' print just the symbol+offset: (gdb) maint translate-address 0x2aaaac1f5880 exit+0 (gdb) info symbol 0x2aaaac1f5880 exit in section .text That's nice, but when I have 100s of shared libraries loaded, I want to know more. Attached patch results in: (gdb) maint translate-address 0x2aaaac1f5880 exit+0 section .text in /usr/lib64/libc.so.6 (gdb) info symbol 0x2aaaac1f5880 exit in section .text of /usr/lib64/libc.so.6 Regtested on x86_64 with no failures. Ok to commit? Thanks, -- Paul Pluzhnikov 2008-11-14 Paul Pluzhnikov * printcmd.c (sym_info): Print object name. * maint.c (maintenance_translate_address): Likewise. Index: gdb/maint.c =================================================================== RCS file: /cvs/src/src/gdb/maint.c,v retrieving revision 1.68 diff -u -p -u -r1.68 maint.c --- gdb/maint.c 30 Oct 2008 20:35:30 -0000 1.68 +++ gdb/maint.c 14 Nov 2008 20:39:48 -0000 @@ -484,9 +484,18 @@ maintenance_translate_address (char *arg sym = lookup_minimal_symbol_by_pc (address); if (sym) - printf_filtered ("%s+%s\n", - SYMBOL_PRINT_NAME (sym), - pulongest (address - SYMBOL_VALUE_ADDRESS (sym))); + { + printf_filtered ("%s+%s", + SYMBOL_PRINT_NAME (sym), + pulongest (address - SYMBOL_VALUE_ADDRESS (sym))); + if ((sect = SYMBOL_OBJ_SECTION(sym))) + { + printf_filtered (_(" section %s"), sect->the_bfd_section->name); + if (sect->objfile && sect->objfile->name) + printf_filtered (_(" in %s"), sect->objfile->name); + } + printf_filtered (_("\n")); + } else if (sect) printf_filtered (_("no symbol at %s:0x%s\n"), sect->the_bfd_section->name, paddr (address)); Index: gdb/printcmd.c =================================================================== RCS file: /cvs/src/src/gdb/printcmd.c,v retrieving revision 1.136 diff -u -p -u -r1.136 printcmd.c --- gdb/printcmd.c 13 Nov 2008 22:26:15 -0000 1.136 +++ gdb/printcmd.c 14 Nov 2008 20:39:48 -0000 @@ -1026,6 +1026,8 @@ sym_info (char *arg, int from_tty) printf_filtered (_("%s overlay "), section_is_mapped (osect) ? "mapped" : "unmapped"); printf_filtered (_("section %s"), osect->the_bfd_section->name); + if (osect->objfile && osect->objfile->name) + printf_filtered (_(" of %s"), osect->objfile->name); printf_filtered ("\n"); } }