diff options
author | Stan Cox <scox@redhat.com> | 2009-08-06 16:20:39 -0400 |
---|---|---|
committer | Stan Cox <scox@redhat.com> | 2009-08-06 16:20:39 -0400 |
commit | 696ec1549fcd846f9736a9c96e25f6ba555cd3e4 (patch) | |
tree | 1163b7f5387979538bb9c06ecd75616de6ea168a /tapsets.cxx | |
parent | c54731e1d0e627a0fb1bb46a63e675c65932cb6c (diff) | |
download | systemtap-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.cxx | 5 |
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); } |