This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Include name of dwp file in "can't find DWO" warning.


Hi.

fyi, I committed this.
It helps diagnose problems when one knows gdb was trying to look in
a dwp file, instead of the dwo file directly.

Tested on amd64-linux, in dwo and dwp cases.

2013-12-11  Doug Evans  <dje@google.com>

	* dwarf2read.c (lookup_dwo_cutu): Include name of dwp file in
	"can't find DWO" warning.

diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 1c7dfc5..f057afa 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -10675,11 +10675,25 @@ lookup_dwo_cutu (struct dwarf2_per_cu_data *this_unit,
 
   /* This is a warning and not a complaint because it can be caused by
      pilot error (e.g., user accidentally deleting the DWO).  */
-  warning (_("Could not find DWO %s %s(%s) referenced by %s at offset 0x%x"
-	     " [in module %s]"),
-	   kind, dwo_name, hex_string (signature),
-	   this_unit->is_debug_types ? "TU" : "CU",
-	   this_unit->offset.sect_off, objfile_name (objfile));
+  {
+    /* Print the name of the DWP file if we looked there, helps the user
+       better diagnose the problem.  */
+    char *dwp_text = NULL;
+    struct cleanup *cleanups;
+
+    if (dwp_file != NULL)
+      dwp_text = xstrprintf (" [in DWP file %s]", lbasename (dwp_file->name));
+    cleanups = make_cleanup (xfree, dwp_text);
+
+    warning (_("Could not find DWO %s %s(%s)%s referenced by %s at offset 0x%x"
+	       " [in module %s]"),
+	     kind, dwo_name, hex_string (signature),
+	     dwp_text != NULL ? dwp_text : "",
+	     this_unit->is_debug_types ? "TU" : "CU",
+	     this_unit->offset.sect_off, objfile_name (objfile));
+
+    do_cleanups (cleanups);
+  }
   return NULL;
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]