Chapter 14. Signal Tapset
This family of probe points is used to probe signal activities. It contains the following probe points:
Name
probe::signal.send — Signal being sent to a process
Values
send2queue
-
Indicates whether the signal is sent to an existing sigqueue
name
-
The name of the function used to send out the signal
task
-
A task handle to the signal recipient
sinfo
-
The address of siginfo struct
si_code
-
Indicates the signal type
sig_name
-
A string representation of the signal
sig
-
The number of the signal
shared
-
Indicates whether the signal is shared by the thread group
sig_pid
-
The PID of the process receiving the signal
pid_name
-
The name of the signal recipient
Context
The signal's sender.
Name
probe::signal.send.return — Signal being sent to a process completed
Synopsis
signal.send.return
Values
retstr
-
The return value to either __group_send_sig_info, specific_send_sig_info, or send_sigqueue
send2queue
-
Indicates whether the sent signal was sent to an existing sigqueue
name
-
The name of the function used to send out the signal
shared
-
Indicates whether the sent signal is shared by the thread group.
Context
The signal's sender. (correct?)
Description
Possible __group_send_sig_info and specific_send_sig_info return values are as follows;
0 -- The signal is sucessfully sent to a process,
which means that
(1) the signal was ignored by the receiving process, (2) this is a non-RT signal and the system already has one queued, and (3) the signal was successfully added to the sigqueue of the receiving process.
-EAGAIN -- The sigqueue of the receiving process is overflowing, the signal was RT, and the signal was sent by a user using something other than kill
.
Possible send_group_sigqueue and send_sigqueue return values are as follows;
0 -- The signal was either sucessfully added into the sigqueue of the receiving process, or a SI_TIMER entry is already queued (in which case, the overrun count will be simply incremented).
1 -- The signal was ignored by the receiving process.
-1 -- (send_sigqueue only) The task was marked exiting, allowing * posix_timer_event to redirect it to the group leader.
Name
probe::signal.checkperm — Check being performed on a sent signal
Synopsis
signal.checkperm
Values
name
-
Name of the probe point
task
-
A task handle to the signal recipient
sinfo
-
The address of the siginfo structure
si_code
-
Indicates the signal type
sig_name
-
A string representation of the signal
sig
-
The number of the signal
pid_name
-
Name of the process receiving the signal
sig_pid
-
The PID of the process receiving the signal
Name
probe::signal.checkperm.return — Check performed on a sent signal completed
Synopsis
signal.checkperm.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.wakeup — Sleeping process being wakened for signal
Values
resume
-
Indicates whether to wake up a task in a STOPPED or TRACED state
state_mask
-
A string representation indicating the mask of task states to wake. Possible values are TASK_INTERRUPTIBLE, TASK_STOPPED, TASK_TRACED, and TASK_INTERRUPTIBLE.
pid_name
-
Name of the process to wake
sig_pid
-
The PID of the process to wake
Name
probe::signal.check_ignored — Checking to see signal is ignored
Synopsis
signal.check_ignored
Values
sig_name
-
A string representation of the signal
sig
-
The number of the signal
pid_name
-
Name of the process receiving the signal
sig_pid
-
The PID of the process receiving the signal
Name
probe::signal.check_ignored.return — Check to see signal is ignored completed
Synopsis
signal.check_ignored.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.force_segv — Forcing send of SIGSEGV
Synopsis
signal.force_segv
Values
name
-
Name of the probe point
sig_name
-
A string representation of the signal
sig
-
The number of the signal
pid_name
-
Name of the process receiving the signal
sig_pid
-
The PID of the process receiving the signal
Name
probe::signal.force_segv.return — Forcing send of SIGSEGV complete
Synopsis
signal.force_segv.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.syskill — Sending kill signal to a process
Values
name
-
Name of the probe point
sig_name
-
A string representation of the signal
sig
-
The specific signal sent to the process
pid_name
-
The name of the signal recipient
sig_pid
-
The PID of the process receiving the signal
Name
probe::signal.syskill.return — Sending kill signal completed
Synopsis
signal.syskill.return
Name
probe::signal.sys_tkill — Sending a kill signal to a thread
Synopsis
signal.sys_tkill
Values
name
-
Name of the probe point
sig_name
-
A string representation of the signal
sig
-
The specific signal sent to the process
pid_name
-
The name of the signal recipient
sig_pid
-
The PID of the process receiving the kill signal
Description
The tkill call is analogous to kill(2), except that it also allows a process within a specific thread group to be targeted. Such processes are targeted through their unique thread IDs (TID).
Name
probe::signal.systkill.return — Sending kill signal to a thread completed
Synopsis
signal.systkill.return
Values
retstr
-
The return value to either __group_send_sig_info,
name
-
Name of the probe point
Name
probe::signal.sys_tgkill — Sending kill signal to a thread group
Synopsis
signal.sys_tgkill
Values
name
-
Name of the probe point
sig_name
-
A string representation of the signal
sig
-
The specific kill signal sent to the process
tgid
-
The thread group ID of the thread receiving the kill signal
pid_name
-
The name of the signal recipient
sig_pid
-
The PID of the thread receiving the kill signal
Description
The tgkill call is similar to tkill, except that it also allows the caller to specify the thread group ID of the thread to be signalled. This protects against TID reuse.
Name
probe::signal.sys_tgkill.return — Sending kill signal to a thread group completed
Synopsis
signal.sys_tgkill.return
Values
retstr
-
The return value to either __group_send_sig_info,
name
-
Name of the probe point
Name
probe::signal.send_sig_queue — Queuing a signal to a process
Synopsis
signal.send_sig_queue
Values
sigqueue_addr
-
The address of the signal queue
name
-
Name of the probe point
sig_name
-
A string representation of the signal
sig
-
The queued signal
pid_name
-
Name of the process to which the signal is queued
sig_pid
-
The PID of the process to which the signal is queued
Name
probe::signal.send_sig_queue.return — Queuing a signal to a process completed
Synopsis
signal.send_sig_queue.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.pending — Examining pending signal
Values
name
-
Name of the probe point
sigset_size
-
The size of the user-space signal set
sigset_add
-
The address of the user-space signal set (sigset_t)
Description
This probe is used to examine a set of signals pending for delivery to a specific thread. This normally occurs when the do_sigpending kernel function is executed.
Name
probe::signal.pending.return — Examination of pending signal completed
Synopsis
signal.pending.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.handle — Signal handler being invoked
Values
regs
-
The address of the kernel-mode stack area
sig_code
-
The si_code value of the siginfo signal
name
-
Name of the probe point
sig_mode
-
Indicates whether the signal was a user-mode or kernel-mode signal
sinfo
-
The address of the siginfo table
sig_name
-
A string representation of the signal
oldset_addr
-
The address of the bitmask array of blocked signals
sig
-
The signal number that invoked the signal handler
ka_addr
-
The address of the k_sigaction table associated with the signal
Name
probe::signal.handle.return — Signal handler invocation completed
Synopsis
signal.handle.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.do_action — Examining or changing a signal action
Synopsis
signal.do_action
Values
sa_mask
-
The new mask of the signal
name
-
Name of the probe point
sig_name
-
A string representation of the signal
oldsigact_addr
-
The address of the old sigaction struct associated with the signal
sig
-
The signal to be examined/changed
sa_handler
-
The new handler of the signal
sigact_addr
-
The address of the new sigaction struct associated with the signal
Name
probe::signal.do_action.return — Examining or changing a signal action completed
Synopsis
signal.do_action.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.procmask — Examining or changing blocked signals
Values
how
-
Indicates how to change the blocked signals; possible values are SIG_BLOCK=0 (for blocking signals), SIG_UNBLOCK=1 (for unblocking signals), and SIG_SETMASK=2 for setting the signal mask.
name
-
Name of the probe point
oldsigset_addr
-
The old address of the signal set (sigset_t)
sigset
-
The actual value to be set for sigset_t (correct?)
sigset_addr
-
The address of the signal set (sigset_t) to be implemented
Name
probe::signal.procmask.return — Examining or changing blocked signals completed
Synopsis
signal.procmask.return
Values
retstr
-
Return value as a string
name
-
Name of the probe point
Name
probe::signal.flush — Flushing all pending signals for a task
Values
name
-
Name of the probe point
task
-
The task handler of the process performing the flush
pid_name
-
The name of the process associated with the task performing the flush
sig_pid
-
The PID of the process associated with the task performing the flush