]> git.pld-linux.org Git - packages/gdb.git/blame - gdb-gdb-add-index-script.patch
- restore gstack and gdb-add-index programs
[packages/gdb.git] / gdb-gdb-add-index-script.patch
CommitLineData
969912f7
JR
1http://sourceware.org/ml/gdb-patches/2010-07/msg00184.html
2Subject: Re: [0/4] RFC: add DWARF index support
3
4Jan Kratochvil: Fixed $d -> $dir.
5Jan Kratochvil: Remove /dev/null redirection.
6
7>>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes:
8
9Tom> This patch series adds support for a DWARF index to gdb.
10
11Roland suggested we wrap up the index-creation code into a helper
12script.
13
14I'm not sure if this is something people would want in gdb proper, but I
15figured I would send it here just in case.
16
17Tom
18
192010-07-09 Tom Tromey <tromey@redhat.com>
20
21 * Makefile.in (install-only): Install gdb-add-index.
22 * gdb-add-index: New file.
23
242010-07-09 Tom Tromey <tromey@redhat.com>
25
26 * gdb.texinfo (Index Files): Mention gdb-add-index.
27
28>From 30714fe719e61baea03d0dc5793eb0d564faebb7 Mon Sep 17 00:00:00 2001
29From: Tom Tromey <tromey@redhat.com>
30Date: Fri, 9 Jul 2010 11:17:54 -0600
31Subject: [PATCH 4/4] add gdb-add-index
32Subject: [PATCH 4/4] add gdb-add-index
33
34---
35 gdb/ChangeLog | 5 +++++
36 gdb/Makefile.in | 11 ++++++++++-
37 gdb/doc/ChangeLog | 4 ++++
38 gdb/doc/gdb.texinfo | 8 ++++++++
39 gdb/gdb-add-index | 30 ++++++++++++++++++++++++++++++
40 5 files changed, 57 insertions(+), 1 deletions(-)
41 create mode 100755 gdb/gdb-add-index
42
43Index: gdb-7.5.91.20130407/gdb/Makefile.in
44===================================================================
45--- gdb-7.5.91.20130407.orig/gdb/Makefile.in 2013-04-11 16:52:51.000000000 +0200
46+++ gdb-7.5.91.20130407/gdb/Makefile.in 2013-04-11 16:53:59.199279388 +0200
47@@ -1053,6 +1053,15 @@ install-only: install-gstack $(CONFIG_IN
48 $(INSTALL_PROGRAM) gcore \
49 $(DESTDIR)$(bindir)/$$transformed_name; \
50 fi
51+ transformed_name=`t='$(program_transform_name)'; \
52+ echo gdb-add-index | sed -e "$$t"` ; \
53+ if test "x$$transformed_name" = x; then \
54+ transformed_name=gdb-add-index ; \
55+ else \
56+ true ; \
57+ fi ; \
58+ $(INSTALL_PROGRAM) $(srcdir)/gdb-add-index \
59+ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT)
60 @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
61
62 install-python:
63Index: gdb-7.5.91.20130407/gdb/doc/gdb.texinfo
64===================================================================
65--- gdb-7.5.91.20130407.orig/gdb/doc/gdb.texinfo 2013-04-11 16:53:00.000000000 +0200
66+++ gdb-7.5.91.20130407/gdb/doc/gdb.texinfo 2013-04-11 16:55:07.004278842 +0200
67@@ -17159,6 +17159,14 @@ There are currently some limitation on i
68 for DWARF debugging information, not stabs. And, they do not
69 currently work for programs using Ada.
70
71+@value{GDBN} comes with a program, @command{gdb-add-index}, which can
72+be used to add the index to a symbol file. It takes the symbol file
73+as its only argument:
74+
75+@smallexample
76+$ gdb-add-index symfile
77+@end smallexample
78+
79 @node Symbol Errors
80 @section Errors Reading Symbol Files
81
82@@ -41730,6 +41738,7 @@ switch (die->tag)
83 * gdbserver man:: Remote Server for the GNU Debugger man page
84 * gcore man:: Generate a core file of a running program
85 * gdbinit man:: gdbinit scripts
86+* gdb-add-index man:: Add index files to speed up GDB
87 @end menu
88
89 @node gdb man
90@@ -42382,6 +42391,54 @@ gdb(1), @code{info -f gdb -n Startup}
91 The full documentation for @value{GDBN} is maintained as a Texinfo manual.
92 If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
93 documentation are properly installed at your site, the command
94+
95+@smallexample
96+info gdb
97+@end smallexample
98+
99+should give you access to the complete manual.
100+
101+@cite{Using GDB: A Guide to the GNU Source-Level Debugger},
102+Richard M. Stallman and Roland H. Pesch, July 1991.
103+@end ifset
104+@c man end
105+
106+@node gdb-add-index man
107+@heading gdb-add-index
108+
109+@c man title gdb-add-index Add index files to speed up GDB
110+
111+@c man begin SYNOPSIS gdb-add-index
112+gdb-add-index @var{filename}
113+@c man end
114+
115+@c man begin DESCRIPTION gdb-add-index
116+When GDB finds a symbol file, it scans the symbols in the file in order
117+to construct an internal symbol table. This lets most GDB operations
118+work quickly--at the cost of a delay early on. For large programs,
119+this delay can be quite lengthy, so GDB provides a way to build an
120+index, which speeds up startup.
121+
122+To determine whether a file contains such an index, use the command
123+@command{readelf -S filename}: the index is stored in a section named
124+@code{.gdb_index}. Note that the index is never generated for files that do
125+not contain DWARF debug information (sections named @code{.debug_*}).
126+
127+See more in
128+@ifset man
129+the @value{GDBN} manual in node @code{Index Files}
130+-- shell command @code{info -f gdb -n 'Index Files'}.
131+@end ifset
132+@ifclear man
133+@ref{Index Files}.
134+@end ifclear
135+@c man end
136+
137+@c man begin SEEALSO gdb-add-index
138+@ifset man
139+The full documentation for @value{GDBN} is maintained as a Texinfo manual.
140+If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
141+documentation are properly installed at your site, the command
142
143 @smallexample
144 info gdb
145Index: gdb-7.5.91.20130407/gdb/gdb-add-index
146===================================================================
147--- /dev/null 1970-01-01 00:00:00.000000000 +0000
148+++ gdb-7.5.91.20130407/gdb/gdb-add-index 2013-04-11 16:53:21.524279909 +0200
149@@ -0,0 +1,30 @@
150+#! /bin/sh
151+
152+# Add a .gdb_index section to a file.
153+
154+# Copyright (C) 2010 Free Software Foundation, Inc.
155+# This program is free software; you can redistribute it and/or modify
156+# it under the terms of the GNU General Public License as published by
157+# the Free Software Foundation; either version 3 of the License, or
158+# (at your option) any later version.
159+#
160+# This program is distributed in the hope that it will be useful,
161+# but WITHOUT ANY WARRANTY; without even the implied warranty of
162+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
163+# GNU General Public License for more details.
164+#
165+# You should have received a copy of the GNU General Public License
166+# along with this program. If not, see <http://www.gnu.org/licenses/>.
167+
168+file="$1"
169+dir="${file%/*}"
170+
171+# We don't care if gdb gives an error.
172+gdb -nx --batch-silent -ex "file $file" -ex "save gdb-index $dir"
173+
174+if test -f "${file}.gdb-index"; then
175+ objcopy --add-section .gdb_index="${file}.gdb-index" --set-section-flags .gdb_index=readonly "$file" "$file"
176+ rm -f "${file}.gdb-index"
177+fi
178+
179+exit 0
180Index: gdb-7.5.91.20130407/gdb/doc/Makefile.in
181===================================================================
182--- gdb-7.5.91.20130407.orig/gdb/doc/Makefile.in 2013-04-11 16:50:33.202286928 +0200
183+++ gdb-7.5.91.20130407/gdb/doc/Makefile.in 2013-04-11 16:55:06.993279304 +0200
184@@ -177,7 +177,7 @@ POD2MAN5 = pod2man --center="GNU Develop
185 --release="gdb-`sed q $(srcdir)/../version.in`" --section=5
186
187 # List of man pages generated from gdb.texi
188-MAN1S = gdb.1 gdbserver.1 gcore.1
189+MAN1S = gdb.1 gdbserver.1 gcore.1 gdb-add-index.1
190 MAN5S = gdbinit.5
191 MANS = $(MAN1S) $(MAN5S)
192
193@@ -626,6 +626,13 @@ gcore.1: $(GDB_DOC_FILES)
194 mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
195 rm -f gcore.pod
196
197+gdb-add-index.1: $(GDB_DOC_FILES)
198+ touch $@
199+ -$(TEXI2POD) $(MANCONF) -Dgdb-add-index < $(srcdir)/gdb.texinfo > gdb-add-index.pod
200+ -($(POD2MAN1) gdb-add-index.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
201+ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
202+ rm -f gdb-add-index.pod
203+
204 gdbinit.5: $(GDB_DOC_FILES)
205 touch $@
206 -$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod
This page took 0.077523 seconds and 4 git commands to generate.