From 43942612f4278418e9b6c48c86e4f02798611f74 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Wed, 11 Dec 2013 15:52:12 -0800 Subject: * dwarf2read.c (lookup_dwo_cutu): Include name of dwp file in "can't find DWO" warning. --- gdb/ChangeLog | 5 +++++ gdb/dwarf2read.c | 24 +++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) (limited to 'gdb') 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 + + * dwarf2read.c (lookup_dwo_cutu): Include name of dwp file in + "can't find DWO" warning. + 2013-12-11 Sergio Durigan Junior * 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; } -- cgit v1.1