summaryrefslogtreecommitdiffstats
path: root/dwflpp.h
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-06-02 11:25:36 -0400
committerDave Brolley <brolley@redhat.com>2009-06-02 11:25:36 -0400
commitea9d509619ae8dc1512576bccdff2288a2c256dc (patch)
treeeb2e737cef374fc16cb1469da9b5e1b05ccd8889 /dwflpp.h
parentc16e888ee192f0cd57c97bae7d4764dfadb1731b (diff)
parent874b38cf7d259179a2a455cd34ea5a5b9348604b (diff)
downloadsystemtap-steved-ea9d509619ae8dc1512576bccdff2288a2c256dc.tar.gz
systemtap-steved-ea9d509619ae8dc1512576bccdff2288a2c256dc.tar.xz
systemtap-steved-ea9d509619ae8dc1512576bccdff2288a2c256dc.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'dwflpp.h')
-rw-r--r--dwflpp.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/dwflpp.h b/dwflpp.h
index 042b37a9..314e7583 100644
--- a/dwflpp.h
+++ b/dwflpp.h
@@ -25,6 +25,7 @@
extern "C" {
#include <elfutils/libdwfl.h>
+#include <regex.h>
}
@@ -268,6 +269,19 @@ struct dwflpp
bool lvalue,
exp_type & ty);
+ bool blacklisted_p(const std::string& funcname,
+ const std::string& filename,
+ int line,
+ const std::string& module,
+ const std::string& section,
+ Dwarf_Addr addr,
+ bool has_return);
+
+ Dwarf_Addr relocate_address(Dwarf_Addr addr,
+ std::string& reloc_section,
+ std::string& blacklist_section);
+
+
private:
Dwfl * dwfl;
@@ -361,6 +375,18 @@ private:
std::string express_as_string (std::string prelude,
std::string postlude,
struct location *head);
+
+ regex_t blacklist_func; // function/statement probes
+ regex_t blacklist_func_ret; // only for .return probes
+ regex_t blacklist_file; // file name
+ bool blacklist_enabled;
+ void build_blacklist();
+ std::string get_blacklist_section(Dwarf_Addr addr);
+
+ Dwarf_Addr pc_cached_scopes;
+ int num_cached_scopes;
+ Dwarf_Die *cached_scopes;
+ int dwarf_getscopes_cached (Dwarf_Addr pc, Dwarf_Die **scopes);
};
#endif // DWFLPP_H