summaryrefslogtreecommitdiffstats
path: root/session.h
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-02-11 15:28:41 -0800
committerJosh Stone <jistone@redhat.com>2009-02-18 12:49:08 -0800
commitf80d90043cf900dc6027329a61489444d7ab4ee3 (patch)
treef01b7ea8098117542993c6563ed8573f3726ee19 /session.h
parentc24447be6017725800336e2a8a4836e3f58fdfe9 (diff)
downloadsystemtap-steved-f80d90043cf900dc6027329a61489444d7ab4ee3.tar.gz
systemtap-steved-f80d90043cf900dc6027329a61489444d7ab4ee3.tar.xz
systemtap-steved-f80d90043cf900dc6027329a61489444d7ab4ee3.zip
Enable session-wide code filtering
This will be used to hook to dwarf_builder to all functions and probes so it can attempt @cast expansion. * session.h (systemtap_session): Add a vector of update_visitors that will act as filters for all probes and functions. * elaborate.cxx (semantic_pass_symbols): Run probes and functions through each registered code filter.
Diffstat (limited to 'session.h')
-rw-r--r--session.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/session.h b/session.h
index 6bcebd8b..735ef200 100644
--- a/session.h
+++ b/session.h
@@ -45,6 +45,7 @@ struct translator_output;
struct unparser;
struct semantic_error;
struct module_cache;
+struct update_visitor;
// XXX: a generalized form of this descriptor could be associated with
@@ -133,6 +134,10 @@ struct systemtap_session
stapfile* user_file;
std::vector<stapfile*> library_files;
+ // filters to run over all code before symbol resolution
+ // e.g. @cast expansion
+ std::vector<update_visitor*> code_filters;
+
// resolved globals/functions/probes for the run as a whole
std::vector<stapfile*> files;
std::vector<vardecl*> globals;