summaryrefslogtreecommitdiffstats
path: root/dwflpp.h
diff options
context:
space:
mode:
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