From a12a8a3f1b4f7cdb743aeaaa5ee6c5a4ff28bb7e Mon Sep 17 00:00:00 2001 From: Rajan Arora Date: Wed, 22 Apr 2009 12:10:37 -0400 Subject: PR 9941: Add predicate function callback to check for an early abort * tapsets.cxx: Add dwfl_report_offline_predicate to check pending interrupts for an early abort. * tapsets.h: Declare it. * translate.cxx: Add callback to function call. --- tapsets.h | 1 + 1 file changed, 1 insertion(+) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index 7165244b..406a69d9 100644 --- a/tapsets.h +++ b/tapsets.h @@ -17,6 +17,7 @@ struct derived_probe_group; void register_standard_tapsets(systemtap_session& sess); std::vector all_session_groups(systemtap_session& s); +int dwfl_report_offline_predicate (const char* modname, const char* filename); #endif // TAPSETS_H -- cgit From 912e8c5926abb587638f8e482c7f714bc5cda758 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 6 May 2009 16:43:51 -0700 Subject: Separate built-in timer tapsets All of the timer.* tapsets are now built and handled in their own tapset-timers.cxx, as the first step of many to pare down the current monolithic tapsets.cxx. --- tapsets.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index 406a69d9..eb8a5072 100644 --- a/tapsets.h +++ b/tapsets.h @@ -13,12 +13,27 @@ #include "staptree.h" #include "elaborate.h" -struct derived_probe_group; - void register_standard_tapsets(systemtap_session& sess); std::vector all_session_groups(systemtap_session& s); int dwfl_report_offline_predicate (const char* modname, const char* filename); +void common_probe_entryfn_prologue (translator_output* o, std::string statestr, + std::string new_pp, bool overload_processing = true); +void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true); + +void register_tapset_timers(systemtap_session& sess); + +// ------------------------------------------------------------------------ +// Generic derived_probe_group: contains an ordinary vector of the +// given type. It provides only the enrollment function. +template struct generic_dpg: public derived_probe_group +{ +protected: + std::vector probes; +public: + generic_dpg () {} + void enroll (DP* probe) { probes.push_back (probe); } +}; #endif // TAPSETS_H -- cgit From 47e0478e7dad2c5321dbcc0f4c69f88aba38812b Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 6 May 2009 17:40:36 -0700 Subject: Separate the begin/end/error/never tapsets --- tapsets.h | 1 + 1 file changed, 1 insertion(+) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index eb8a5072..cf83b5e3 100644 --- a/tapsets.h +++ b/tapsets.h @@ -20,6 +20,7 @@ void common_probe_entryfn_prologue (translator_output* o, std::string statestr, std::string new_pp, bool overload_processing = true); void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true); +void register_tapset_been(systemtap_session& sess); void register_tapset_timers(systemtap_session& sess); // ------------------------------------------------------------------------ -- cgit From 7a212aa8e893ad29acca3e80e1af01de0b894305 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 6 May 2009 18:52:46 -0700 Subject: Separate the procfs tapset --- tapsets.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index cf83b5e3..ba322d44 100644 --- a/tapsets.h +++ b/tapsets.h @@ -21,8 +21,10 @@ void common_probe_entryfn_prologue (translator_output* o, std::string statestr, void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true); void register_tapset_been(systemtap_session& sess); +void register_tapset_procfs(systemtap_session& sess); void register_tapset_timers(systemtap_session& sess); + // ------------------------------------------------------------------------ // Generic derived_probe_group: contains an ordinary vector of the // given type. It provides only the enrollment function. @@ -36,6 +38,19 @@ public: void enroll (DP* probe) { probes.push_back (probe); } }; + +// ------------------------------------------------------------------------ +// An update visitor that allows replacing assignments with a function call + +struct var_expanding_visitor: public update_visitor +{ + static unsigned tick; + std::stack target_symbol_setter_functioncalls; + + var_expanding_visitor() {} + void visit_assignment (assignment* e); +}; + #endif // TAPSETS_H /* vim: set sw=2 ts=8 cino=>4,n-2,{2,^-2,t0,(0,u0,w1,M1 : */ -- cgit From 01c2eefe76e5a0eb8dd5a9504b522cdcb11f2665 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 7 May 2009 14:49:08 -0700 Subject: Separate the permon tapset --- tapsets.h | 1 + 1 file changed, 1 insertion(+) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index ba322d44..f561aa59 100644 --- a/tapsets.h +++ b/tapsets.h @@ -21,6 +21,7 @@ void common_probe_entryfn_prologue (translator_output* o, std::string statestr, void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true); void register_tapset_been(systemtap_session& sess); +void register_tapset_perfmon(systemtap_session& sess); void register_tapset_procfs(systemtap_session& sess); void register_tapset_timers(systemtap_session& sess); -- cgit From dd0e4fa70fd7589ff80618305bd3d24e98a5d73b Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 7 May 2009 15:15:29 -0700 Subject: Separate the kernel.mark tapset --- tapsets.h | 1 + 1 file changed, 1 insertion(+) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index f561aa59..d4fe7a91 100644 --- a/tapsets.h +++ b/tapsets.h @@ -21,6 +21,7 @@ void common_probe_entryfn_prologue (translator_output* o, std::string statestr, void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true); void register_tapset_been(systemtap_session& sess); +void register_tapset_mark(systemtap_session& sess); void register_tapset_perfmon(systemtap_session& sess); void register_tapset_procfs(systemtap_session& sess); void register_tapset_timers(systemtap_session& sess); -- cgit From 93646f4d5ccaa051cd996cc2ab6a2b4a21418714 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 7 May 2009 16:17:11 -0700 Subject: Separate task_finder and the itrace tapset --- tapsets.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index d4fe7a91..da4bebd3 100644 --- a/tapsets.h +++ b/tapsets.h @@ -1,5 +1,5 @@ // -*- C++ -*- -// Copyright (C) 2005 Red Hat Inc. +// Copyright (C) 2005, 2009 Red Hat Inc. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General @@ -21,6 +21,7 @@ void common_probe_entryfn_prologue (translator_output* o, std::string statestr, void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true); void register_tapset_been(systemtap_session& sess); +void register_tapset_itrace(systemtap_session& sess); void register_tapset_mark(systemtap_session& sess); void register_tapset_perfmon(systemtap_session& sess); void register_tapset_procfs(systemtap_session& sess); -- cgit From b84779a5a4e19d2a4d8bbf9eabb96e43b2aecdee Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 7 May 2009 16:41:16 -0700 Subject: Separate the utrace tapset --- tapsets.h | 1 + 1 file changed, 1 insertion(+) (limited to 'tapsets.h') diff --git a/tapsets.h b/tapsets.h index da4bebd3..7a74ad31 100644 --- a/tapsets.h +++ b/tapsets.h @@ -26,6 +26,7 @@ void register_tapset_mark(systemtap_session& sess); void register_tapset_perfmon(systemtap_session& sess); void register_tapset_procfs(systemtap_session& sess); void register_tapset_timers(systemtap_session& sess); +void register_tapset_utrace(systemtap_session& sess); // ------------------------------------------------------------------------ -- cgit