[PATCH 2/2] man: document the :signal option to -e fault

Dmitry V. Levin ldv at altlinux.org
Wed Dec 28 01:14:35 UTC 2016


On Tue, Dec 27, 2016 at 12:14:36PM +0100, Seraphime Kirkovski wrote:
> This adds :signal to strace.1
> 
> Signed-off-by: Seraphime Kirkovski <kirkseraph at gmail.com>
> ---
>  strace.1 | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/strace.1 b/strace.1
> index 24dd7d3..2be7d83 100644
> --- a/strace.1
> +++ b/strace.1
> @@ -472,7 +472,7 @@ Note that this is independent from the normal tracing of the
>  system call which is controlled by the option
>  .BR -e "\ " trace = write .
>  .TP
> -\fB\-e\ fault\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR]
> +\fB\-e\ fault\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR]
>  Perform a syscall fault injection for the specified set of syscalls.
>  When a fault is injected into a syscall invocation, the syscall number
>  is replaced by -1 which corresponds to an invalid syscall.
> @@ -486,6 +486,17 @@ the default error code returned by the kernel, which is traditionally
>  .B ENOSYS
>  for invalid syscall numbers on most architectures.
>  
> +If a signal is specified using either a symbolic value like

If a signal
.I sig
is specified using either a symbolic value like

> +.B SIGSEGV
> +or a numeric value within 1..\fBSIGRTMAX\fR,

or a numeric value within 1..\fBSIGRTMAX\fR range,

> +that signal is sent upon entry of any of the syscalls in \,\fIset\fR.

that signal is delivered on entering every syscall specified by the
.IR set .

> +
> +If \,\fIsig\fR is specified without \,\fIerrno\fR, no error injection is made.

If :\fBsignal\fR=\,\fIsig\/\fR option is specified without
:\fBerror\fR=\,\fIerrno\/\fR option, then only a signal
.I sig
is delivered without a syscall fault injection.

> +Conversely, \,\fIerrno\fR without \,\fIsig\fR faults the syscall without sending a signal.

Conversely, :\fBerror\fR=\,\fIerrno\/\fR option without
:\fBsignal\fR=\,\fIsig\/\fR option injects a fault without delivering a signal.

> +
> +If both \,\fIsig\fR and \,\fIerrno\fR are specified, the signal \,\fIsig\fR is sent
> +and the error code \,\fIerrno\fR is injected.

If both :\fBerror\fR=\,\fIerrno\/\fR and :\fBsignal\fR=\,\fIsig\/\fR
options are specified, then both a fault is injected with the specified
error code
.I errno
and a signal
.I sig
is delivered.

> +
>  Unless a :\fBwhen\fR=\,\fIexpr\fR subexpression is specified,
>  a fault is injected into every invocation of each syscall from the

-a fault is injected into every invocation of each syscall from the
+an injection is being made into every invocation of each syscall from the

>  .IR set .

BTW, the whole thing is a user visible feature worth mentioning in the
NEWS file.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20161228/f2cbe147/attachment.bin>


More information about the Strace-devel mailing list