diff options
author | hunt <hunt> | 2007-10-09 13:28:09 +0000 |
---|---|---|
committer | hunt <hunt> | 2007-10-09 13:28:09 +0000 |
commit | a6053c5b3f42ef0e016df9074ebc75c93a79d544 (patch) | |
tree | 8e8c4527ea7c820dc4f9f68ed0f6633e009af93c /tapset | |
parent | 9e92a33ca35e29f34095f6c43cc712927307f87f (diff) | |
download | systemtap-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/ChangeLog | 9 | ||||
-rw-r--r-- | tapset/aux_syscalls.stp | 13 | ||||
-rw-r--r-- | tapset/syscalls2.stp | 2 |
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" |