From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5730 invoked by alias); 2 Feb 2013 18:12:38 -0000 Received: (qmail 5700 invoked by uid 22791); 2 Feb 2013 18:12:36 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_SPAMHAUS_DROP,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 02 Feb 2013 18:12:28 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r12ICQB5016597 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 2 Feb 2013 13:12:26 -0500 Received: from host2.jankratochvil.net (ovpn-116-88.ams2.redhat.com [10.36.116.88]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r12ICJhK023620 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Sat, 2 Feb 2013 13:12:22 -0500 Date: Sat, 02 Feb 2013 18:12:00 -0000 From: Jan Kratochvil To: Eli Zaretskii Cc: gdb-patches@sourceware.org Subject: Re: [patchv3 12/11] New options {relative,basename}-with-system-absolute Message-ID: <20130202181219.GB16269@host2.jankratochvil.net> References: <20130129221019.GA27463@host2.jankratochvil.net> <20130130074820.GA15998@host2.jankratochvil.net> <8338xiiodg.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8338xiiodg.fsf@gnu.org> User-Agent: Mutt/1.5.21 (2010-09-15) 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: 2013-02/txt/msg00046.txt.bz2 On Wed, 30 Jan 2013 18:15:07 +0100, Eli Zaretskii wrote: > > +@item set filename-display basename-with-system-absolute > > +Determine whether a source filename comes from file having separate debug > > +information file. In such case display the source filename as absolute one. > > +Otherwise display only basename of the filename. > > Similarly here: start with "Display ..." as this what the option > controls. used: debug info, and all the other source file names only as their basenames. Thanks, Jan gdb/ 2013-01-29 Jan Kratochvil * NEWS (set filename-display): Add options relative-with-system-absolute and basename-with-system-absolute. * source.c (filename_display_relative_with_system_absolute) (filename_display_basename_with_system_absolute): New. (filename_display_kind_names): Add them. (symtab_to_filename_for_display): Use them. (_initialize_source): Describe them for "set filename-display". gdb/doc/ 2013-01-29 Jan Kratochvil * gdb.texinfo (Backtrace): Add new set filename-display options relative-with-system-absolute and basename-with-system-absolute. --- a/gdb/NEWS +++ b/gdb/NEWS @@ -115,7 +115,8 @@ show print type typedefs Control whether typedef definitions are displayed by "ptype". The default is to show them. -set filename-display basename|relative|absolute +set filename-display basename|relative|absolute|relative-with-system-absolute + |basename-with-system-absolute show filename-display Control the way in which filenames is displayed. The default is "relative", which preserves previous behavior. --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -6549,6 +6549,18 @@ Display only basename of a filename. @item set filename-display absolute Display an absolute filename. +@item set filename-display relative-with-system-absolute +Display as absolute those source file names that come from files with separate +debug info, and all the other source file names as relative to their +compilation directory. + +Files having separate debug information file are expected to come from system +shared libraries. + +@item set filename-display basename-with-system-absolute +Display as absolute those source file names that come from files with separate +debug info, and all the other source file names only as their basenames. + @item show filename-display Show the current way to display filenames. @end table --- a/gdb/source.c +++ b/gdb/source.c @@ -113,11 +113,17 @@ show_lines_to_list (struct ui_file *file, int from_tty, static const char filename_display_basename[] = "basename"; static const char filename_display_relative[] = "relative"; static const char filename_display_absolute[] = "absolute"; +static const char filename_display_relative_with_system_absolute[] = + "relative-with-system-absolute"; +static const char filename_display_basename_with_system_absolute[] = + "basename-with-system-absolute"; static const char *const filename_display_kind_names[] = { filename_display_basename, filename_display_relative, filename_display_absolute, + filename_display_relative_with_system_absolute, + filename_display_basename_with_system_absolute, NULL }; @@ -1144,8 +1150,16 @@ symtab_to_filename_for_display (struct symtab *symtab) return symtab_to_fullname (symtab); else if (filename_display_string == filename_display_relative) return symtab->filename; - else - internal_error (__FILE__, __LINE__, _("invalid filename_display_string")); + + if (symtab->objfile->separate_debug_objfile != NULL + || symtab->objfile->separate_debug_objfile_backlink != NULL) + return symtab_to_fullname (symtab); + + if (filename_display_string == filename_display_relative_with_system_absolute) + return symtab->filename; + if (filename_display_string == filename_display_basename_with_system_absolute) + return lbasename (symtab->filename); + internal_error (__FILE__, __LINE__, _("invalid filename_display_string")); } /* Create and initialize the table S->line_charpos that records @@ -2071,6 +2085,13 @@ filename-display can be:\n\ basename - display only basename of a filename\n\ relative - display a filename relative to the compilation directory\n\ absolute - display an absolute filename\n\ + relative-with-system-absolute - display filenames from files with separate\n\ + debug info files as absolute, other files\n\ + display relative to the compilation directory\ +\n\ + basename-with-system-absolute - display filenames from files with separate\n\ + debug info files as absolute, other files\n\ + display only with basename of the filename\n\ By default, relative filenames are displayed."), NULL, show_filename_display_string,