diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 24 |
2 files changed, 24 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 35a1d73..40368b5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2013-12-11 Doug Evans <dje@google.com> + + * dwarf2read.c (lookup_dwo_cutu): Include name of dwp file in + "can't find DWO" warning. + 2013-12-11 Sergio Durigan Junior <sergiodj@redhat.com> * break-catch-throw.c (fetch_probe_arguments): Pass selected frame 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; } |