diff options
author | Josh Stone <jistone@redhat.com> | 2009-02-11 15:28:41 -0800 |
---|---|---|
committer | Josh Stone <jistone@redhat.com> | 2009-02-18 12:49:08 -0800 |
commit | f80d90043cf900dc6027329a61489444d7ab4ee3 (patch) | |
tree | f01b7ea8098117542993c6563ed8573f3726ee19 /elaborate.cxx | |
parent | c24447be6017725800336e2a8a4836e3f58fdfe9 (diff) | |
download | systemtap-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.cxx | 6 |
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); |