summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
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 /elaborate.cxx
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 'elaborate.cxx')
-rw-r--r--elaborate.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/elaborate.cxx b/elaborate.cxx
index 981fc7c7..9f8aa450 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -1092,6 +1092,9 @@ semantic_pass_symbols (systemtap_session& s)
try
{
+ for (unsigned j=0; j<s.code_filters.size(); j++)
+ fd->body = s.code_filters[j]->require (fd->body);
+
sym.current_function = fd;
sym.current_probe = 0;
fd->body->visit (& sym);
@@ -1124,6 +1127,9 @@ semantic_pass_symbols (systemtap_session& s)
try
{
+ for (unsigned k=0; k<s.code_filters.size(); k++)
+ dp->body = s.code_filters[k]->require (dp->body);
+
sym.current_function = 0;
sym.current_probe = dp;
dp->body->visit (& sym);