summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--tapsets.cxx15
2 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 09d231ba..44f69db0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2009-01-20 Frank Ch. Eigler <fche@elastic.org>
+ * tapsets.cxx (dwarf..:visit_target_symbol): Print more data
+ for failed $$vars fields to help explain printed "var=?".
+
+2009-01-20 Frank Ch. Eigler <fche@elastic.org>
+
* dwarf_wrappers.cxx (dwfl_assert): Tolerate rc==-1, for which
dwfl_errmsg(-1)=>NULL.
diff --git a/tapsets.cxx b/tapsets.cxx
index 148cc99d..e109d4e8 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -1,5 +1,5 @@
// tapset resolution
-// Copyright (C) 2005-2008 Red Hat Inc.
+// Copyright (C) 2005-2009 Red Hat Inc.
// Copyright (C) 2005-2007 Intel Corporation.
// Copyright (C) 2008 James.Bottomley@HansenPartnership.com
//
@@ -2259,8 +2259,8 @@ struct dwflpp
if (sess.verbose>2)
clog << "finding location for local '" << local
- << "' near address " << hex << pc
- << ", module bias " << module_bias << dec
+ << "' near address 0x" << hex << pc
+ << ", module bias 0x" << module_bias << dec
<< "\n";
Dwarf_Attribute attr_mem;
@@ -4607,6 +4607,15 @@ dwarf_var_expanding_copy_visitor::visit_target_symbol (target_symbol *e)
this->visit_target_symbol(tsym); // NB: throws nothing ...
if (tsym->saved_conversion_error) // ... but this is how we know it happened.
{
+ if (q.sess.verbose>2)
+ {
+ for (semantic_error *c = tsym->saved_conversion_error;
+ c != 0;
+ c = c->chain) {
+ clog << "variable location problem: " << c->what() << endl;
+ }
+ }
+
pf->raw_components += diename;
pf->raw_components += "=? ";
}