summaryrefslogtreecommitdiffstats
path: root/dwflpp.h
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-11-17 22:20:32 +0100
committerMark Wielaard <mjw@redhat.com>2009-11-17 22:24:29 +0100
commit063906a93ee3ea5b976f43e2dd1f73d29605fa4c (patch)
treedd9f6d4bf9f0d3d2898c5e9f2e43bd5d1c073345 /dwflpp.h
parent0e357e42f614362b37c0b55a840eb585b04b311c (diff)
downloadsystemtap-steved-063906a93ee3ea5b976f43e2dd1f73d29605fa4c.tar.gz
systemtap-steved-063906a93ee3ea5b976f43e2dd1f73d29605fa4c.tar.xz
systemtap-steved-063906a93ee3ea5b976f43e2dd1f73d29605fa4c.zip
Search other CUs of the module when resolving declarations.
* dwflpp.h (declaration_resolve_other_cus): New method. (iterate_over_globals): Mark as static and takes a CU to iterate over. (global_alias_caching_callback_cus): New method. * dwflpp.cxx (global_alias_caching_callback_cus): New method. (declaration_resolve_other_cus): New method. (declaration_resolve): Call iterate_over_globals() with current cu. Call declaration_resolve_other_cus() when name not found. (iterate_over_globals): Takes cu_die to iterate over as argument.
Diffstat (limited to 'dwflpp.h')
-rw-r--r--dwflpp.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/dwflpp.h b/dwflpp.h
index b3f71eb2..cdc6ad98 100644
--- a/dwflpp.h
+++ b/dwflpp.h
@@ -213,6 +213,7 @@ struct dwflpp
std::vector<Dwarf_Die> getscopes(Dwarf_Addr pc);
Dwarf_Die *declaration_resolve(const char *name);
+ Dwarf_Die *declaration_resolve_other_cus(const char *name);
mod_cu_function_cache_t cu_function_cache;
@@ -319,8 +320,10 @@ private:
*/
mod_cu_type_cache_t global_alias_cache;
static int global_alias_caching_callback(Dwarf_Die *die, void *arg);
- int iterate_over_globals (int (* callback)(Dwarf_Die *, void *),
- void * data);
+ static int global_alias_caching_callback_cus(Dwarf_Die *die, void *arg);
+ static int iterate_over_globals (Dwarf_Die *,
+ int (* callback)(Dwarf_Die *, void *),
+ void * data);
static int cu_function_caching_callback (Dwarf_Die* func, void *arg);