diff options
author | fche <fche> | 2005-10-18 02:28:00 +0000 |
---|---|---|
committer | fche <fche> | 2005-10-18 02:28:00 +0000 |
commit | b4ceace28084125ffbac795974319eaffa758147 (patch) | |
tree | 2e7a2052f6e3d016860dce9f7d40b6824a295076 /tapsets.cxx | |
parent | 54efe513a4b01f433dba37f3106e4907028247f0 (diff) | |
download | systemtap-steved-b4ceace28084125ffbac795974319eaffa758147.tar.gz systemtap-steved-b4ceace28084125ffbac795974319eaffa758147.tar.xz systemtap-steved-b4ceace28084125ffbac795974319eaffa758147.zip |
2005-10-17 Frank Ch. Eigler <fche@elastic.org>
PR 1338.
* parse.cx (parse_probe): Unconditionally visit parse_probe_point.
(parse_probe_point): Accept "*" as component name.
* stapprobes.5.in: Document this.
* elaborate.cxx (derive_probes): Rewrite. Make top-level function.
(match_node::find_and_build): New function to replace
(find_builder): Removed.
(match_key operator <): Correct one nasty typo.
(match_node::bind): Refuse to bind "*" component names.
(derived_probe_builder::build): Remove recursion output param.
(alias_expandion_builder::build): Recurse to derive_probes instead.
* elaborate.h: Corresponding changes.
* tapsets.cxx: Ditto.
(query_cu): Elide prologue finding for uninteresting CUs.
* testsuite/semok/nineteen.stp: New test.
* testsuite/semko/twentythree.stp: New test.
* testsuite/semko/twentyone/two.stp: Fix -p2.
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index 36681f8c..5211d403 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -108,7 +108,6 @@ struct be_builder: public derived_probe_builder probe * base, probe_point * location, std::map<std::string, literal *> const & parameters, - vector<probe *> & results_to_expand_further, vector<derived_probe *> & finished_results) { finished_results.push_back(new be_derived_probe(base, location, begin)); @@ -1407,7 +1406,6 @@ struct dwarf_builder: public derived_probe_builder probe * base, probe_point * location, std::map<std::string, literal *> const & parameters, - vector<probe *> & results_to_expand_further, vector<derived_probe *> & finished_results); }; @@ -2011,8 +2009,11 @@ query_cu (Dwarf_Die * cudie, void * arg) // matching the query, and fill in the prologue endings of them // all in a single pass. q->dw.iterate_over_functions (query_dwarf_func, q); - q->dw.resolve_prologue_endings (q->filtered_functions); - q->dw.resolve_prologue_endings2 (q->filtered_functions); + if (! q->filtered_functions.empty()) // No functions in this CU to worry about? + { + q->dw.resolve_prologue_endings (q->filtered_functions); + q->dw.resolve_prologue_endings2 (q->filtered_functions); + } if ((q->has_statement_str || q->has_function_str || q->has_inline_str) && (q->spec_type == function_file_and_line)) @@ -2754,7 +2755,6 @@ dwarf_builder::build(systemtap_session & sess, probe * base, probe_point * location, std::map<std::string, literal *> const & parameters, - vector<probe *> & results_to_expand_further, vector<derived_probe *> & finished_results) { @@ -2916,7 +2916,6 @@ struct timer_builder: public derived_probe_builder probe * base, probe_point * location, std::map<std::string, literal *> const & parameters, - vector<probe *> &, vector<derived_probe *> & finished_results) { int64_t jn, rn; |