summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--tapset/system_calls.stp8
-rw-r--r--tapsets.cxx5
3 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 48876061..0539598e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-08 Frank Ch. Eigler <fche@redhat.com>
+
+ * tapsets.cxx (blacklisted_p): Add blacklist for some .return
+ probes to kludge around bug #1345.
+ * tapset/system_calls.stp: Add some %( %? %) conditionals to
+ get closer to using tapset on 2.6.9 kernel.
+
2005-11-07 Frank Ch. Eigler <fche@redhat.com>
PR 1828.
diff --git a/tapset/system_calls.stp b/tapset/system_calls.stp
index 760c3505..b56f4e89 100644
--- a/tapset/system_calls.stp
+++ b/tapset/system_calls.stp
@@ -1337,7 +1337,7 @@ probe kernel.syscall.restart_syscall.return =
probe kernel.syscall.exit =
kernel.function("do_exit") {
name = "exit"
- status = $error_code
+ %( kernel_v > "2.6.9" %? status = $error_code %)
}
probe kernel.syscall.exit.return =
@@ -1350,13 +1350,13 @@ probe kernel.syscall.exit.return =
probe kernel.syscall.exit_group =
kernel.function("do_group_exit") {
name = "exit_group"
- status = $error_code
+ %( kernel_v > "2.6.9" %? status = $error_code %)
}
probe kernel.syscall.exit_group.return =
kernel.function("do_group_exit").return {
name = "exit_group.return"
- status = $error_code
+ %( kernel_v > "2.6.9" %? status = $error_code %)
}
# wait4____________________________________________
/* asmlinkage long
@@ -6356,7 +6356,7 @@ probe kernel.syscall.clone =
kernel.function("do_fork") {
name = "clone"
clone_flags = $clone_flags
- start_stack = $start_stack
+ %( kernel_v > "2.6.9" %? start_stack = $start_stack %)
/* Export this???
regs = $regs->...
*/
diff --git a/tapsets.cxx b/tapsets.cxx
index 21c3aad7..7b0d2b78 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -1713,7 +1713,10 @@ dwarf_query::blacklisted_p(string const & funcname,
string filename_s = filename ? filename : ""; // is passed as const char*
if (funcname == "do_IRQ" ||
filename_s == "kernel/kprobes.c" ||
- 0 == fnmatch ("arch/*/kernel/kprobes.c", filename, 0))
+ 0 == fnmatch ("arch/*/kernel/kprobes.c", filename, 0) ||
+ (has_return && (funcname == "sys_execve" || // bug #1345
+ funcname == "sys_exit" ||
+ funcname == "sys_groupexit")))
{
if (sess.verbose)
clog << "skipping function '" << funcname << "' file '"