From 12b44fb38852cf2ff27d47a22f7d9bb8439de5ad Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 20 Jan 2009 17:34:00 -0500 Subject: improve var=? explanation debugging via -vvv --- ChangeLog | 5 +++++ tapsets.cxx | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 09d231ba..44f69db0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-01-20 Frank Ch. Eigler + + * tapsets.cxx (dwarf..:visit_target_symbol): Print more data + for failed $$vars fields to help explain printed "var=?". + 2009-01-20 Frank Ch. Eigler * dwarf_wrappers.cxx (dwfl_assert): Tolerate rc==-1, for which 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 += "=? "; } -- cgit