diff options
-rw-r--r-- | gdb/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/NEWS | 6 | ||||
-rw-r--r-- | gdb/build-id.c | 7 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 6 | ||||
-rw-r--r-- | gdb/symfile.c | 18 | ||||
-rw-r--r-- | gdb/symfile.h | 4 |
7 files changed, 59 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c48fb92..38a40e1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +2017-06-11 Simon Marchi <simon.marchi@ericsson.com> + + * NEWS (Changes since GDB 8.0): Announce {set,show} debug + separate-debug-file commands. + * symfile.h (separate_debug_file_debug): New global. + * symfile.c (separate_debug_file_debug): New global. + (separate_debug_file_exists, find_separate_debug_file): Add + debug output. + (_initialize_symfile): Add "set debug separate-debug-file" + command. + * build-id.c (build_id_to_debug_bfd, + find_separate_debug_file_by_buildid): Add debug output. + 2017-06-10 Simon Marchi <simon.marchi@polymtl.ca> * gdbarch.sh (displaced_step_free_closure): Remove. @@ -17,6 +17,12 @@ QStartupWithShell Indicates whether the inferior must be started with a shell or not. +* New commands + +set debug separate-debug-file +show debug separate-debug-file + Control the display of debug output about separate debug file search. + *** Changes in GDB 8.0 * GDB now supports access to the PKU register on GNU/Linux. The register is diff --git a/gdb/build-id.c b/gdb/build-id.c index 0f63223..4b2b63e 100644 --- a/gdb/build-id.c +++ b/gdb/build-id.c @@ -112,6 +112,9 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id) s += sprintf (s, "%02x", (unsigned) *data++); strcpy (s, ".debug"); + if (separate_debug_file_debug) + printf_unfiltered (_(" Trying %s\n"), link); + /* lrealpath() is expensive even for the usually non-existent files. */ if (access (link, F_OK) == 0) filename = lrealpath (link); @@ -147,6 +150,10 @@ find_separate_debug_file_by_buildid (struct objfile *objfile) build_id = build_id_bfd_get (objfile->obfd); if (build_id != NULL) { + if (separate_debug_file_debug) + printf_unfiltered (_("\nLooking for separate debug info (build-id) for " + "%s\n"), objfile_name (objfile)); + gdb_bfd_ref_ptr abfd (build_id_to_debug_bfd (build_id->size, build_id->data)); /* Prevent looping on a stripped .debug file. */ diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 868cde9..aa4a9ce 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2017-06-11 Simon Marchi <simon.marchi@ericsson.com> + + * gdb.texinfo (Optional Messages about Internal Happenings): + Document {set,show} debug separate-debug-file commands. + 2017-06-07 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.texinfo (Starting) <startup-with-shell>: Add @anchor. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 8d7a1c9..c167a86 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -23984,6 +23984,12 @@ the serial line to the remote machine. The info is printed on the @value{GDBN} standard output stream. The default is off. @item show debug remote Displays the state of display of remote packets. + +@item set debug separate-debug-file +Turns on or off display of debug output about separate debug file search. +@item show debug separate-debug-file +Displays the state of separate debug file search debug output. + @item set debug serial Turns on or off display of @value{GDBN} serial debugging info. The default is off. diff --git a/gdb/symfile.c b/gdb/symfile.c index 846aabe..f936cf3 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -1333,6 +1333,10 @@ symbol_file_clear (int from_tty) printf_unfiltered (_("No symbol file now.\n")); } +/* See symfile.h. */ + +int separate_debug_file_debug = 0; + static int separate_debug_file_exists (const char *name, unsigned long crc, struct objfile *parent_objfile) @@ -1351,6 +1355,9 @@ separate_debug_file_exists (const char *name, unsigned long crc, if (filename_cmp (name, objfile_name (parent_objfile)) == 0) return 0; + if (separate_debug_file_debug) + printf_unfiltered (_(" Trying %s\n"), name); + gdb_bfd_ref_ptr abfd (gdb_bfd_open (name, gnutarget, -1)); if (abfd == NULL) @@ -1444,6 +1451,10 @@ find_separate_debug_file (const char *dir, struct cleanup *back_to; int ix; + if (separate_debug_file_debug) + printf_unfiltered (_("\nLooking for separate debug info (debug link) for " + "%s\n"), objfile_name (objfile)); + /* Set I to std::max (strlen (canon_dir), strlen (dir)). */ i = strlen (dir); if (canon_dir != NULL && strlen (canon_dir) > i) @@ -3975,4 +3986,11 @@ full == print messages for the executable,\n\ NULL, NULL, &setprintlist, &showprintlist); + + add_setshow_boolean_cmd ("separate-debug-file", no_class, + &separate_debug_file_debug, _("\ +Set printing of separate debug info file search debug."), _("\ +Show printing of separate debug info file search debug."), _("\ +When on, GDB prints the searched locations while looking for separate debug \ +info files."), NULL, NULL, &setdebuglist, &showdebuglist); } diff --git a/gdb/symfile.h b/gdb/symfile.h index ab536e8..bb47fdf 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -646,4 +646,8 @@ extern void elfmdebug_build_psymtabs (struct objfile *, extern gdb_bfd_ref_ptr find_separate_debug_file_in_section (struct objfile *); +/* True if we are printing debug output about separate debug info files. */ + +extern int separate_debug_file_debug; + #endif /* !defined(SYMFILE_H) */ |