From de7c5583f657bb42980f66d3b88572241b676f76 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Tue, 16 Jun 2009 12:58:33 -0400 Subject: Support -L for kprobe and utrace static user markers. tapsets.cxx (dwarf_builder::build): Special case listing mode for kprobe and utrace. --- tapsets.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'tapsets.cxx') diff --git a/tapsets.cxx b/tapsets.cxx index 5e9deb9b..843b6017 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -3482,9 +3482,9 @@ dwarf_builder::build(systemtap_session & sess, do { set::iterator pb; - pb = probes_handled.find(probe_table.mark_name); + pb = probes_handled.find(probe_table.probe_name); if (pb == probes_handled.end()) - probes_handled.insert (probe_table.mark_name); + probes_handled.insert (probe_table.probe_name); else return; @@ -3504,6 +3504,13 @@ dwarf_builder::build(systemtap_session & sess, new_base->body = svv.require (new_base->body); probe_table.convert_location(new_base, new_location); derive_probes(sess, new_base, finished_results); + if (sess.listing_mode) + { + finished_results.back()->locations[0]->components[0]->functor = TOK_FUNCTION; + finished_results.back()->locations[0]->components[0]->arg = new literal_string (module_name); + finished_results.back()->locations[0]->components[1]->functor = TOK_MARK; + finished_results.back()->locations[0]->components[1]->arg = new literal_string (probe_table.probe_name.c_str()); + } } while (probe_table.get_next_probe()); return; -- cgit From fc4a80b88ef35892b1727b683e6ccf18c67a6877 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 16 Jun 2009 11:31:22 -0700 Subject: Use the expanded value for sdt $$name * tapsets.cxx (dwarf_builder::build): pass probe_table.probe_name into the sdt_var_expander instead of .mark_name, so wildcards are resolved. --- tapsets.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tapsets.cxx') diff --git a/tapsets.cxx b/tapsets.cxx index 843b6017..15dbeb81 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -3459,7 +3459,7 @@ dwarf_builder::build(systemtap_session & sess, << hex << probe_table.probe_arg << dec << endl; // Now expand the local variables in the probe body - sdt_var_expanding_visitor svv (module_name, probe_table.mark_name, + sdt_var_expanding_visitor svv (module_name, probe_table.probe_name, probe_table.probe_arg, false); new_base->body = svv.require (new_base->body); @@ -3499,7 +3499,7 @@ dwarf_builder::build(systemtap_session & sess, probe_table.convert_probe(new_base); // Expand the local variables in the probe body - sdt_var_expanding_visitor svv (module_name, probe_table.mark_name, + sdt_var_expanding_visitor svv (module_name, probe_table.probe_name, probe_table.probe_arg, true); new_base->body = svv.require (new_base->body); probe_table.convert_location(new_base, new_location); -- cgit