summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
authorStan Cox <scox@redhat.com>2009-08-06 16:20:39 -0400
committerStan Cox <scox@redhat.com>2009-08-06 16:20:39 -0400
commit696ec1549fcd846f9736a9c96e25f6ba555cd3e4 (patch)
tree1163b7f5387979538bb9c06ecd75616de6ea168a /tapsets.cxx
parentc54731e1d0e627a0fb1bb46a63e675c65932cb6c (diff)
downloadsystemtap-steved-696ec1549fcd846f9736a9c96e25f6ba555cd3e4.tar.gz
systemtap-steved-696ec1549fcd846f9736a9c96e25f6ba555cd3e4.tar.xz
systemtap-steved-696ec1549fcd846f9736a9c96e25f6ba555cd3e4.zip
Fix a couple of sdt_query reorg problems.
* tapsets.cxx (sdt_query::handle_query_module): For uprobe probes: 1) find all same named probes to handle multiple probes per module 2) use new_base for uprobe probes to handle $$name * sdt_misc.exp: Test $$name
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index c953dd78..f91d15d3 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -3390,7 +3390,8 @@ sdt_query::handle_query_module()
while (get_next_probe())
{
- if (!probes_handled.insert(probe_name).second)
+ if (probe_type != uprobe_type
+ && !probes_handled.insert(probe_name).second)
continue;
probe *new_base = new probe(*base_probe);
@@ -3424,7 +3425,7 @@ sdt_query::handle_query_module()
params[c->functor] = c->arg;
}
- dwarf_query q(base_probe, base_loc, dw, params, results);
+ dwarf_query q(new_base, new_location, dw, params, results);
q.has_mark = true; // enables mid-statement probing
dw.iterate_over_modules(&query_module, &q);
}