From 16442b904ea51eedfbef36edc9791f5904d81099 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 10 Apr 2008 15:38:18 -0400 Subject: PR2949: listings mode (stap -l PROBE) 2008-04-10 Frank Ch. Eigler PR 2949. * session.h (listing_mode): New field. * main.cxx (main): Test it. Enjoy it. (usage): Document it. * stap.1.in, stapex.5.in: Ditto. * elaborate.cxx (print_error): Disable error messages in listing mode. 2008-04-10 Frank Ch. Eigler PR 2949 * systemtap.base/cmd_parse.exp: Add "-l" listing test. --- elaborate.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'elaborate.h') diff --git a/elaborate.h b/elaborate.h index fc8fbbcb..30bf5bce 100644 --- a/elaborate.h +++ b/elaborate.h @@ -114,6 +114,8 @@ struct derived_probe: public probe derived_probe (probe* b, probe_point* l); probe* base; // the original parsed probe virtual probe* basest () { return base->basest(); } + // XXX: might be helpful for listing and stepwise expansion, but aliases/wildcards don't show up right + // virtual probe* almost_basest () { probe* bb = base->basest(); return (bb == base) ? this : bb; } virtual ~derived_probe () {} virtual void join_group (systemtap_session& s) = 0; virtual probe_point* sole_location () const; -- cgit From 342d3f9693ea4eead68ba8ff841132a7adc7776b Mon Sep 17 00:00:00 2001 From: David Smith Date: Fri, 11 Apr 2008 09:52:55 -0500 Subject: 2008-04-11 David Smith * elaborate.h (struct derived_probe_group): Added emit_module_header virtual function. * translate.cxx (c_unparser::emit_common_header): Calls each probe group's emit_module_header function. (translate_pass): Moved inclusion of linux/marker.h to mark_derived_probe_group::emit_module_header(). * tapsets.cxx (struct be_derived_probe_group): Added empty emit_module_header function. (struct timer_derived_probe_group): Ditto. (struct profile_derived_probe_group): Ditto. (struct procfs_derived_probe_group): Ditto. (struct hrtimer_derived_probe_group): Ditto. (struct perfmon_derived_probe_group): Ditto. (dwarf_derived_probe_group::emit_module_header): Moved kprobes kernel check from emit_module_decls() to here. (uprobe_derived_probe_group::emit_module_header): Moved uprobe kernel check from emit_module_decls() to here. (uprobe_derived_probe_group::emit_module_decls): Moved uprobe kernel check to emit_module_header(). (mark_derived_probe_group::emit_module_header): Moved marker kernel check from emit_module_decls and translate_pass() to here. (uprobe_derived_probe_group::emit_module_decls): Moved marker kernel check to emit_module_header(). --- elaborate.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'elaborate.h') diff --git a/elaborate.h b/elaborate.h index 30bf5bce..f53f3870 100644 --- a/elaborate.h +++ b/elaborate.h @@ -150,6 +150,12 @@ struct derived_probe_group { virtual ~derived_probe_group () {} + virtual void emit_module_header (systemtap_session& s) = 0; + // The _header-generated code may assume that only basic includes + // have been generated. _header is called near the start of the + // code generation process, before the context, embedded-C code, + // etc. are generated. + virtual void emit_module_decls (systemtap_session& s) = 0; // The _decls-generated code may assume that declarations such as // the context, embedded-C code, function and probe handler bodies -- cgit