From patchwork Thu Jan 11 21:35:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergio Durigan Junior X-Patchwork-Id: 25347 Received: (qmail 87804 invoked by alias); 11 Jan 2018 21:35:43 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 87741 invoked by uid 89); 11 Jan 2018 21:35:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=Tools, mans, stabs, sergio X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 11 Jan 2018 21:35:41 +0000 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8DF16486D9; Thu, 11 Jan 2018 21:35:35 +0000 (UTC) Received: from psique.yyz.redhat.com (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4FA1480E11; Thu, 11 Jan 2018 21:35:32 +0000 (UTC) From: Sergio Durigan Junior To: GDB Patches Cc: Tom Tromey , Eli Zaretskii , Sergio Durigan Junior Subject: [PATCH] Install and generate docs for gdb-add-index Date: Thu, 11 Jan 2018 16:35:30 -0500 Message-Id: <20180111213530.23774-1-sergiodj@redhat.com> X-IsSubscribed: yes The "gdb-add-index" script has been resurrected on: commit caf26be91a584ef141ac5d3cb31007731af8b8e3 Author: Samuel Bronson Date: Fri Nov 15 16:09:33 2013 -0500 Resurrect gdb-add-index as a contrib script However, for some reason (I couldn't find it in the archives), only the script has been checked-in; the Makefile parts responsible for installing it in the system were left out. This commit fixes that, by also resurrecting the Makefile and documentation bits. This commit is part of our effort to upstream the local Fedora GDB changes. With this commit, we'll only carry a very small Fedora-specific modification to the script. gdb/ChangeLog: 2017-01-11 Tom Tromey * Makefile.in (install-only): Install gdb-add-index. gdb/doc/ChangeLog: 2017-01-11 Tom Tromey Sergio Durigan Junior * gdb.texinfo (Index Files): Mention gdb-add-index. (gdb-add-index man): New section. * Makefile.in (gdb-add-index.1): New rule to generate manpage from gdb.texinfo. --- gdb/Makefile.in | 9 ++++++++ gdb/doc/Makefile.in | 9 +++++++- gdb/doc/gdb.texinfo | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 17b71c6e7c..d63220db4e 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1770,6 +1770,15 @@ install-only: $(CONFIG_INSTALL) $(INSTALL_SCRIPT) gcore \ $(DESTDIR)$(bindir)/$$transformed_name; \ fi + transformed_name=`t='$(program_transform_name)'; \ + echo gdb-add-index | sed -e "$$t"` ; \ + if test "x$$transformed_name" = x; then \ + transformed_name=gdb-add-index ; \ + else \ + true ; \ + fi ; \ + $(INSTALL_PROGRAM) $(srcdir)/contrib/gdb-add-index.sh \ + $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do install-strip: diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in index eafadee899..0323bc4ecb 100644 --- a/gdb/doc/Makefile.in +++ b/gdb/doc/Makefile.in @@ -174,7 +174,7 @@ POD2MAN5 = pod2man --center="GNU Development Tools" \ --release="gdb-`sed q version.subst`" --section=5 # List of man pages generated from gdb.texi -MAN1S = gdb.1 gdbserver.1 gcore.1 +MAN1S = gdb.1 gdbserver.1 gcore.1 gdb-add-index.1 MAN5S = gdbinit.5 MANS = $(MAN1S) $(MAN5S) @@ -633,6 +633,13 @@ gcore.1: $(GDB_DOC_FILES) mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1) rm -f gcore.pod +gdb-add-index.1: $(GDB_DOC_FILES) + touch $@ + -$(TEXI2POD) $(MANCONF) -Dgdb-add-index < $(srcdir)/gdb.texinfo > gdb-add-index.pod + -($(POD2MAN1) gdb-add-index.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \ + mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1) + rm -f gdb-add-index.pod + gdbinit.5: $(GDB_DOC_FILES) touch $@ -$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index dba2fa766a..62fcdd524e 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -19775,6 +19775,14 @@ There are currently some limitation on indices. They only work when for DWARF debugging information, not stabs. And, they do not currently work for programs using Ada. +@value{GDBN} comes with a program, @command{gdb-add-index}, which can +be used to add the index to a symbol file. It takes the symbol file +as its only argument: + +@smallexample +$ gdb-add-index symfile +@end smallexample + @node Symbol Errors @section Errors Reading Symbol Files @@ -42750,6 +42758,7 @@ switch (die->tag) * gdbserver man:: Remote Server for the GNU Debugger man page * gcore man:: Generate a core file of a running program * gdbinit man:: gdbinit scripts +* gdb-add-index man:: Add index files to speed up GDB @end menu @node gdb man @@ -43426,6 +43435,59 @@ Richard M. Stallman and Roland H. Pesch, July 1991. @end ifset @c man end +@node gdb-add-index man +@heading gdb-add-index + +@c man title gdb-add-index Add index files to speed up GDB + +@c man begin SYNOPSIS gdb-add-index +gdb-add-index @var{filename} +@c man end + +@c man begin DESCRIPTION gdb-add-index +When GDB finds a symbol file, it scans the symbols in the file in order +to construct an internal symbol table. This lets most GDB operations +work quickly--at the cost of a delay early on. For large programs, +this delay can be quite lengthy, so GDB provides a way to build an +index, which speeds up startup. + +To determine whether a file contains such an index, use the command +@command{readelf -S filename}: the index is stored in a section named +@code{.gdb_index}. Note that the index is never generated for files that do +not contain DWARF debug information (sections named @code{.debug_*}). + +@command{gdb-add-index} uses @value{GDBN} and @command{objdump} found +in the @code{PATH} environment variable. If you want to use different +versions of these programs, you can specify them through the +@code{GDB} and @code{OBJDUMP} environment variables. + +See more in +@ifset man +the @value{GDBN} manual in node @code{Index Files} +-- shell command @code{info -f gdb -n 'Index Files'}. +@end ifset +@ifclear man +@ref{Index Files}. +@end ifclear +@c man end + +@c man begin SEEALSO gdb-add-index +@ifset man +The full documentation for @value{GDBN} is maintained as a Texinfo manual. +If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo +documentation are properly installed at your site, the command + +@smallexample +info gdb +@end smallexample + +should give you access to the complete manual. + +@cite{Using GDB: A Guide to the GNU Source-Level Debugger}, +Richard M. Stallman and Roland H. Pesch, July 1991. +@end ifset +@c man end + @include gpl.texi @node GNU Free Documentation License