diff options
author | Dave Brolley <brolley@redhat.com> | 2009-06-02 11:25:36 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-06-02 11:25:36 -0400 |
commit | ea9d509619ae8dc1512576bccdff2288a2c256dc (patch) | |
tree | eb2e737cef374fc16cb1469da9b5e1b05ccd8889 /dwflpp.h | |
parent | c16e888ee192f0cd57c97bae7d4764dfadb1731b (diff) | |
parent | 874b38cf7d259179a2a455cd34ea5a5b9348604b (diff) | |
download | systemtap-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.h | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -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 |