* NEWS: Document new options "set/show use-deprecated-index-sections",
authorDoug Evans <dje@google.com>
Fri, 20 Jul 2012 17:38:05 +0000 (17:38 +0000)
committerDoug Evans <dje@google.com>
Fri, 20 Jul 2012 17:38:05 +0000 (17:38 +0000)
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".

gdb/ChangeLog
gdb/NEWS
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/dwarf2read.c
gdb/main.c
gdb/symfile.h

index 7e3b4f992f9352fc632a9cd6f57a2552b7a9cf17..4bb108bd2c874c3722e7b91af6c9f346561067b9 100644 (file)
@@ -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
index f65dd0b2132570dcde6e40890653967743c19a47..3333810cffe2686338e4203c1234e21b6f8a613b 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
 * 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"
 
 * 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 97b9a17510d7578bb61a11f5ddd4eb6feed13e7e..cbe96d26a8ce7018887d64d11ed7f655c792f602 100644 (file)
@@ -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
index a92df86893438df1488ae872eec415d402a09fc2..68ea817d1e2328ab26ae6d8882130f2ab807c119 100644 (file)
@@ -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.
index 9f8de432c972448d979e8f9ade207ef2fecd1f7b..d5a8157ba246637ab020c6a586aee37e32567f9e 100644 (file)
@@ -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\
index 025bbe0defe8c652fc8fd0c78ec45a24836f4a43..d075694096b88e4b31c7b270802c685e8064424e 100644 (file)
@@ -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 5968dc210083b9f904a0196f107196ab8c761406..edf1c242dc6769e4b131a71758d8694b1f99b6cf 100644 (file)
@@ -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.  */