diff options
author | Doug Evans <dje@google.com> | 2012-07-20 17:38:05 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2012-07-20 17:38:05 +0000 |
commit | e615022aba277cd9a14aa70e2458680e152849fa (patch) | |
tree | e7f46d44fada0e2f7fb9b16b8f4653f6df98ed5f | |
parent | 64776a0b2d88d40f308304194d26b766bb12b7e3 (diff) | |
download | gdb-e615022aba277cd9a14aa70e2458680e152849fa.zip gdb-e615022aba277cd9a14aa70e2458680e152849fa.tar.gz gdb-e615022aba277cd9a14aa70e2458680e152849fa.tar.bz2 |
* 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".
-rw-r--r-- | gdb/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/NEWS | 14 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 31 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 24 | ||||
-rw-r--r-- | gdb/main.c | 2 | ||||
-rw-r--r-- | gdb/symfile.h | 3 |
7 files changed, 71 insertions, 23 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7e3b4f9..4bb108b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +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. + 2012-07-20 Pedro Alves <palves@redhat.com> PR threads/11692 @@ -114,11 +114,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" @@ -139,6 +139,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. diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 97b9a17..cbe96d2 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,11 @@ +2012-07-20 Doug Evans <dje@google.com> + + * 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". + 2012-07-12 Eli Zaretskii <eliz@gnu.org> * gdbint.texinfo: Remove @syncodeindex directives that put all the diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index a92df86..68ea817 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -1247,13 +1247,6 @@ memory usage after it completes each command and returns to the prompt. 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=symfile.gdb-index \ --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 function from versions 5 and 6. 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. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 9f8de43..d5a8157 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -85,7 +85,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; /* When set, the file that we're processing is known to have debugging info for C++ namespaces. GCC 3.3.x did not produce this information, @@ -2611,15 +2611,17 @@ read_index_from_section (struct objfile *objfile, 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 && !deprecated_ok) { 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."), filename); warning_printed = 1; } @@ -19655,6 +19657,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\ @@ -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} }; diff --git a/gdb/symfile.h b/gdb/symfile.h index 5968dc2..edf1c24 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -673,9 +673,6 @@ extern void dwarf2_build_frame_info (struct objfile *); 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. */ |