From: dje@google.com
To: Eli Zaretskii <eliz@gnu.org>
Cc: jan.kratochvil@redhat.com, gdb-patches@sourceware.org
Subject: Re: [RFA, doc RFA] New option set use-deprecated-index-sections
Date: Fri, 20 Jul 2012 18:01:00 -0000 [thread overview]
Message-ID: <20489.40174.602435.247343@ruffy2.mtv.corp.google.com> (raw)
In-Reply-To: <83fw8n8thj.fsf@gnu.org>
Eli Zaretskii writes:
> > Date: Thu, 19 Jul 2012 11:25:41 -0700
> > cc: gdb-patches@sourceware.org
> > From: dje@google.com
> >
> > How about this?
>
> Fine with me, thanks.
Thanks.
And I committed this to the 7.5 branch.
2012-07-20 Doug Evans <dje@google.com>
* NEWS: Document new options "set/show use-deprecated-index-sections",
and delete reference to --use-deprecated-index-sections.
* symfile.h (use_deprecated_index_sections): Delete.
* dwarf2read.c (use_deprecated_index_sections): Make static.
(read_index_from_section): Update wording of how to load
deprecated index sections.
(_initialize_dwarf2_read): New options
"set/show use-deprecated-index-sections".
* main.c (captured_main): Delete --use-deprecated-index-sections.
doc/
* gdb.texinfo (Mode Options): Delete --use-deprecated-index-sections.
(Index Files): Document how to control the use of deprecated index
sections.
(Index Section Format): Replace --use-deprecated-index-sections with
"set use-deprecated-index-sections on".
Index: NEWS
===================================================================
RCS file: /cvs/src/src/gdb/NEWS,v
retrieving revision 1.533.2.1
diff -u -p -r1.533.2.1 NEWS
--- NEWS 18 Jul 2012 15:56:55 -0000 1.533.2.1
+++ NEWS 20 Jul 2012 17:57:19 -0000
@@ -112,11 +112,11 @@
* The .gdb_index section has been updated to include symbols for
inlined functions. GDB will ignore older .gdb_index sections by
default, which could cause symbol files to be loaded more slowly
- until their .gdb_index sections can be recreated. The new option
- --use-deprecated-index-sections will cause GDB to use any older
- .gdb_index sections it finds. This will restore performance, but
- the ability to set breakpoints on inlined functions will be lost
- in symbol files with older .gdb_index sections.
+ until their .gdb_index sections can be recreated. The new command
+ "set use-deprecated-index-sections on" will cause GDB to use any older
+ .gdb_index sections it finds. This will restore performance, but the
+ ability to set breakpoints on inlined functions will be lost in symbol
+ files with older .gdb_index sections.
The .gdb_index section has also been updated to record more information
about each symbol. This speeds up the "info variables", "info functions"
@@ -137,6 +137,10 @@
* New commands
+ ** "set use-deprecated-index-sections on|off"
+ "show use-deprecated-index-sections on|off"
+ Controls the use of deprecated .gdb_index sections.
+
** "catch load" and "catch unload" can be used to stop when a shared
library is loaded or unloaded, respectively.
Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.687
diff -u -p -r1.687 dwarf2read.c
--- dwarf2read.c 16 Jul 2012 03:22:40 -0000 1.687
+++ dwarf2read.c 20 Jul 2012 17:57:19 -0000
@@ -93,7 +93,7 @@ static int dwarf2_die_debug = 0;
static int check_physname = 0;
/* When non-zero, do not reject deprecated .gdb_index sections. */
-int use_deprecated_index_sections = 0;
+static int use_deprecated_index_sections = 0;
static int pagesize;
@@ -2558,15 +2558,17 @@ dwarf2_read_index (struct objfile *objfi
Versions earlier than 6 did not emit psymbols for inlined
functions. Using these files will cause GDB not to be able to
set breakpoints on inlined functions by name, so we ignore these
- indices unless the --use-deprecated-index-sections command line
- option was supplied. */
+ indices unless the user has done
+ "set use-deprecated-index-sections on". */
if (version < 6 && !use_deprecated_index_sections)
{
static int warning_printed = 0;
if (!warning_printed)
{
- warning (_("Skipping deprecated .gdb_index section in %s, pass "
- "--use-deprecated-index-sections to use them anyway"),
+ warning (_("\
+Skipping deprecated .gdb_index section in %s.\n\
+Do \"set use-deprecated-index-sections on\" before the file is read\n\
+to use the section anyway."),
objfile->name);
warning_printed = 1;
}
@@ -19387,6 +19389,18 @@ the demangler."),
NULL, show_check_physname,
&setdebuglist, &showdebuglist);
+ add_setshow_boolean_cmd ("use-deprecated-index-sections",
+ no_class, &use_deprecated_index_sections, _("\
+Set whether to use deprecated gdb_index sections."), _("\
+Show whether to use deprecated gdb_index sections."), _("\
+When enabled, deprecated .gdb_index sections are used anyway.\n\
+Normally they are ignored either because of a missing feature or\n\
+performance issue.\n\
+Warning: This option must be enabled before gdb reads the file."),
+ NULL,
+ NULL,
+ &setlist, &showlist);
+
c = add_cmd ("gdb-index", class_files, save_gdb_index_command,
_("\
Save a gdb-index file.\n\
Index: main.c
===================================================================
RCS file: /cvs/src/src/gdb/main.c,v
retrieving revision 1.110
diff -u -p -r1.110 main.c
--- main.c 2 Jul 2012 12:05:00 -0000 1.110
+++ main.c 20 Jul 2012 17:57:19 -0000
@@ -471,8 +471,6 @@ captured_main (void *data)
{"args", no_argument, &set_args, 1},
{"l", required_argument, 0, 'l'},
{"return-child-result", no_argument, &return_child_result, 1},
- {"use-deprecated-index-sections", no_argument,
- &use_deprecated_index_sections, 1},
{0, no_argument, 0, 0}
};
Index: symfile.h
===================================================================
RCS file: /cvs/src/src/gdb/symfile.h,v
retrieving revision 1.109
diff -u -p -r1.109 symfile.h
--- symfile.h 24 May 2012 22:14:35 -0000 1.109
+++ symfile.h 20 Jul 2012 17:57:19 -0000
@@ -676,9 +676,6 @@ extern void dwarf2_build_frame_info (str
void dwarf2_free_objfile (struct objfile *);
-/* Whether to use deprecated .gdb_index sections. */
-extern int use_deprecated_index_sections;
-
/* From mdebugread.c */
/* Hack to force structures to exist before use in parameter list. */
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.990
diff -u -p -r1.990 gdb.texinfo
--- doc/gdb.texinfo 5 Jul 2012 01:08:24 -0000 1.990
+++ doc/gdb.texinfo 20 Jul 2012 17:57:20 -0000
@@ -1247,13 +1247,6 @@ memory usage after it completes each com
This option causes @value{GDBN} to print its version number and
no-warranty blurb, and exit.
-@item -use-deprecated-index-sections
-@cindex @code{--use-deprecated-index-sections}
-This option causes @value{GDBN} to read and use deprecated
-@samp{.gdb_index} sections from symbol files. This can speed up
-startup, but may result in some functionality being lost.
-@xref{Index Section Format}.
-
@end table
@node Startup
@@ -16753,6 +16746,28 @@ $ objcopy --add-section .gdb_index=symfi
--set-section-flags .gdb_index=readonly symfile symfile
@end smallexample
+@value{GDBN} will normally ignore older versions of @file{.gdb_index}
+sections that have been deprecated. Usually they are deprecated because
+they are missing a new feature or have performance issues.
+To tell @value{GDBN} to use a deprecated index section anyway
+specify @code{set use-deprecated-index-sections on}.
+The default is @code{off}.
+This can speed up startup, but may result in some functionality being lost.
+@xref{Index Section Format}.
+
+@emph{Warning:} Setting @code{use-deprecated-index-sections} to @code{on}
+must be done before gdb reads the file. The following will not work:
+
+@smallexample
+$ gdb -ex "set use-deprecated-index-sections on" <program>
+@end smallexample
+
+Instead you must do, for example,
+
+@smallexample
+$ gdb -iex "set use-deprecated-index-sections on" <program>
+@end smallexample
+
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.
@@ -40408,7 +40423,7 @@ Version 4 uses a different hashing funct
Version 6 includes symbols for inlined functions, whereas versions 4
and 5 do not. Version 7 adds attributes to the CU indices in the
symbol table. @value{GDBN} will only read version 4, 5, or 6 indices
-if the @code{--use-deprecated-index-sections} option is used.
+by specifying @code{set use-deprecated-index-sections on}.
@item
The offset, from the start of the file, of the CU list.
next prev parent reply other threads:[~2012-07-20 18:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-17 21:24 dje
2012-07-17 21:43 ` Jan Kratochvil
2012-07-17 22:10 ` Doug Evans
2012-07-18 22:34 ` dje
2012-07-18 23:33 ` Jan Kratochvil
2012-07-18 23:53 ` dje
2012-07-19 7:03 ` Jan Kratochvil
2012-07-19 16:09 ` Eli Zaretskii
2012-07-19 16:28 ` Doug Evans
2012-07-19 16:45 ` Eli Zaretskii
2012-07-19 18:26 ` dje
2012-07-19 19:02 ` Eli Zaretskii
2012-07-20 18:01 ` dje [this message]
2012-07-25 14:33 ` [patch] testsuite: Fix gdb.mi/* regression on RHEL-6 [Re: [RFA, doc RFA] New option set use-deprecated-index-sections] Jan Kratochvil
2012-07-25 20:36 ` [commit+7.5] " Jan Kratochvil
2012-07-27 21:39 ` [commit#2+7.5] " Jan Kratochvil
2012-07-19 16:11 ` [RFA, doc RFA] New option set use-deprecated-index-sections Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20489.40174.602435.247343@ruffy2.mtv.corp.google.com \
--to=dje@google.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox