This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit] Include name of dwp file in "can't find DWO" warning.
- From: Doug Evans <dje at google dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 11 Dec 2013 15:55:59 -0800
- Subject: [commit] Include name of dwp file in "can't find DWO" warning.
- Authentication-results: sourceware.org; auth=none
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;
}