diff options
author | Rajan Arora <rarora@redhat.com> | 2009-04-22 12:10:37 -0400 |
---|---|---|
committer | Rajan Arora <rarora@redhat.com> | 2009-04-22 12:18:56 -0400 |
commit | a12a8a3f1b4f7cdb743aeaaa5ee6c5a4ff28bb7e (patch) | |
tree | 7e5d308b761946cb8c388cfee43ca46a2a587833 /tapsets.cxx | |
parent | 247f1e1fa09953347a4e5313ae0022f151316dae (diff) | |
download | systemtap-steved-a12a8a3f1b4f7cdb743aeaaa5ee6c5a4ff28bb7e.tar.gz systemtap-steved-a12a8a3f1b4f7cdb743aeaaa5ee6c5a4ff28bb7e.tar.xz systemtap-steved-a12a8a3f1b4f7cdb743aeaaa5ee6c5a4ff28bb7e.zip |
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.
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index bfc1d541..4ab61942 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -668,6 +668,15 @@ enum line_t { ABSOLUTE, RELATIVE, RANGE, WILDCARD }; typedef vector<inline_instance_info> inline_instance_map_t; typedef vector<func_info> func_info_map_t; + +// PR 9941 introduces the need for a predicate + +int dwfl_report_offline_predicate (const char* modname, const char* filename) +{ + if (pending_interrupts) { return -1; } + return 1; +} + struct dwflpp { systemtap_session & sess; @@ -946,7 +955,7 @@ struct dwflpp int rc = dwfl_linux_kernel_report_offline (dwfl, elfutils_kernel_path.c_str(), - NULL); + &dwfl_report_offline_predicate); if (debuginfo_needed) dwfl_assert (string("missing ") + sess.architecture + |