summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
authorfche <fche>2005-10-18 02:28:00 +0000
committerfche <fche>2005-10-18 02:28:00 +0000
commitb4ceace28084125ffbac795974319eaffa758147 (patch)
tree2e7a2052f6e3d016860dce9f7d40b6824a295076 /tapsets.cxx
parent54efe513a4b01f433dba37f3106e4907028247f0 (diff)
downloadsystemtap-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.cxx11
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;