summaryrefslogtreecommitdiffstats
path: root/tapset
diff options
context:
space:
mode:
authorhunt <hunt>2007-10-09 13:28:09 +0000
committerhunt <hunt>2007-10-09 13:28:09 +0000
commita6053c5b3f42ef0e016df9074ebc75c93a79d544 (patch)
tree8e8c4527ea7c820dc4f9f68ed0f6633e009af93c /tapset
parent9e92a33ca35e29f34095f6c43cc712927307f87f (diff)
downloadsystemtap-steved-a6053c5b3f42ef0e016df9074ebc75c93a79d544.tar.gz
systemtap-steved-a6053c5b3f42ef0e016df9074ebc75c93a79d544.tar.xz
systemtap-steved-a6053c5b3f42ef0e016df9074ebc75c93a79d544.zip
2007-10-09 Martin Hunt <hunt@redhat.com>
* syscalls2.stp (sys_signal): Call _sighandler_str(). * aux_syscalls.stp (_stp_sigset_str): Don't include SIG_0. (_sighandler_str): New.
Diffstat (limited to 'tapset')
-rw-r--r--tapset/ChangeLog9
-rw-r--r--tapset/aux_syscalls.stp13
-rw-r--r--tapset/syscalls2.stp2
3 files changed, 22 insertions, 2 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index d5846322..3a0afe3b 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,12 @@
+2007-10-09 Martin Hunt <hunt@redhat.com>
+
+ * syscalls2.stp (sys_signal): Call
+ _sighandler_str().
+
+ * aux_syscalls.stp (_stp_sigset_str): Don't
+ include SIG_0.
+ (_sighandler_str): New.
+
2007-10-09 Zhaolei <zhaolei@cn.fujitsu.com>
* queue_stats.stp (qsq_start): Add destruction for qs_utime.
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 3818ae75..aa3e078e 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1587,7 +1587,7 @@ void _stp_sigset_str(sigset_t *mask, char *ptr, int len)
const _stp_val_array * const array = _stp_signal_list;
int i = 0, flag = 0;
while (array[i].name) {
- if (sigismember(mask, array[i].val)) {
+ if (array[i].val && sigismember(mask, array[i].val)) {
if (flag)
strlcat(ptr, "|", len);
strlcat(ptr, array[i].name, len);
@@ -1785,6 +1785,17 @@ function get_mmap_args:string (args:long)
strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
%}
+
+function _sighandler_str:string(uaddr:long)
+%{ /* pure */
+ static const _stp_val_array const _stp_sa_handler_list[] = {
+ {0, "SIG_DFL"},
+ {1, "SIG_IGN"},
+ {0, NULL}
+ };
+ _stp_lookup_str(_stp_sa_handler_list, (long)THIS->uaddr, THIS->__retvalue, MAXSTRINGLEN);
+%}
+
function _struct_sigaction_u:string(uaddr:long)
%{ /* pure */
static const _stp_val_array const _stp_sa_handler_list[] = {
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index acb2c137..e702bbcd 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -2122,7 +2122,7 @@ probe syscall.signal = kernel.function("sys_signal") ? {
name = "signal"
sig = $sig
handler = $handler
- argstr = sprintf("%s, %p", _signal_name($sig), $handler)
+ argstr = sprintf("%s, %s", _signal_name($sig), _sighandler_str($handler))
}
probe syscall.signal.return = kernel.function("sys_signal").return ? {
name = "signal"