From 81bee1eb48c5ea75526a8d58d0f3470b26b6de84 Mon Sep 17 00:00:00 2001 From: jistone Date: Thu, 17 Aug 2006 16:09:21 +0000 Subject: [PATCH] 2006-08-17 Josh Stone * signal.stp: Changes on behalf of Manoj S Pattabhiraman: 1. As per the suggestions, i have removed the argstr from the probe points. 2. Added some checks to find whether the signals generated are USER or Kernel Mode in signal_handle probe. --- tapset/ChangeLog | 8 ++++++++ tapset/signal.stp | 28 +++++++++++----------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/tapset/ChangeLog b/tapset/ChangeLog index 621b60e43..93f1c4130 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,11 @@ +2006-08-17 Josh Stone + + * signal.stp: Changes on behalf of Manoj S Pattabhiraman: + 1. As per the suggestions, i have removed the argstr from the + probe points. + 2. Added some checks to find whether the signals generated are + USER or Kernel Mode in signal_handle probe. + 2006-08-17 Li Guanglei * signal.stp: update signal tapsets based on the discussion diff --git a/tapset/signal.stp b/tapset/signal.stp index 315bd070e..1628e0058 100644 --- a/tapset/signal.stp +++ b/tapset/signal.stp @@ -41,9 +41,6 @@ probe signal.send = _signal.send.* si_code="SI_KERNEL (SIGFPE, SIGSEGV, SIGTRAP, SIGCHLD, SIGPOLL)" else if (sinfo <= 0) si_code="SI_USER or SI_TIMER or SI_ASYNCIO" - - argstr = sprintf("Signal : %s - Process name : %s (%d) - Signal Code : %s", - sig_name, pid_name, sig_pid, si_code) } probe _signal.send.part1 = kernel.function("__group_send_sig_info") @@ -173,9 +170,6 @@ probe signal.checkperm = kernel.function("check_kill_permission") si_code="SI_KERNEL (SIGFPE, SIGSEGV, SIGTRAP, SIGCHLD, SIGPOLL)" else if (sinfo <= 0) si_code="SI_USER or SI_TIMER or SI_ASYNCIO" - - argstr = sprintf("Perm Check: %s - Process name : %s (%d) - Signal Code : %s", - sig_name, pid_name, sig_pid, si_code) } probe signal.checkperm.return = kernel.function("check_kill_permission").return @@ -200,8 +194,6 @@ probe signal.wakeup = kernel.function("signal_wake_up") } else { sig_state = "TASK_INTERRUPTIBLE | TASK_STOPPED | TASK_TRACED" } - argstr = sprintf("Wakeup Signal to Process %s (%d) - Process State after the signal : %s", - pid_name, sig_pid, sig_state) } @@ -216,8 +208,6 @@ probe signal.check_ignored = kernel.function("sig_ignored") pid_name = kernel_string($t->comm) sig_info = $sig sig_name = _signal_name($sig) - argstr = sprintf("Signal : %s is ignored by the Process : %s (%d)", - sig_name, pid_name, sig_pid) } probe signal.check_ignored.return = kernel.function("sig_ignored").return @@ -242,8 +232,6 @@ probe signal.handle_stop = kernel.function("handle_stop_signal") pid_name = kernel_string($p->comm) sig_info = $sig sig_name = _signal_name($sig) - argstr = sprintf("Handle_Stop_Signal : %s is sent to the process %s (%d)", - sig_name, pid_name, sig_pid); } */ @@ -259,8 +247,6 @@ probe signal.force_segv = kernel.function("force_sigsegv") pid_name = kernel_string($p->comm) sig_info = $sig sig_name = _signal_name($sig) - argstr = sprintf("Signal < %d > is forced on to the process %s (%d)", - sig_name, pid_name, sig_pid); } probe signal.force_segv.return = kernel.function("force_sigsegv").return @@ -370,18 +356,26 @@ probe signal.pend.return = kernel.function("do_sigpending").return * info : address of siginfo table. * ka : Address of the k_sigaction table associated with the signal * oldset : Address of a bit mask array of blocked signals - * regs : Address in the Kernel Mode stack area w - * + * regs : Address in the Kernel Mode stack area + * */ probe signal.handle = kernel.function("handle_signal")?, kernel.inline("handle_signal")? { sig = $sig sig_name = _signal_name($sig) - siginfo_add=$info + sinfo_addr = $info + sig_code = $info->si_code sig_stack_add=$ka bitmask_add=$oldset kernmode_stack_add=$regs + + // Check whether the signal is a User Mode or Kernel mode Signal. + + if (sinfo_addr == 0 && sig_code <= 0) + sig_mode = "User Mode Signal" + else if (sinfo_addr >= 1) + sig_mode = "Kernel Mode Signal" } probe signal.handle.return = kernel.function("handle_signal").return -- 2.43.5