mirror of https://github.com/mkerrisk/man-pages
ptrace.2: Document the behavior of PTRACE_SYSEMU stops
Signed-off-by: Keno Fischer <keno@juliacomputing.com>
This commit is contained in:
parent
2b44a16879
commit
131bcd7aaa
|
@ -737,7 +737,7 @@ is ignored.)
|
||||||
For
|
For
|
||||||
.BR PTRACE_SYSEMU ,
|
.BR PTRACE_SYSEMU ,
|
||||||
continue and stop on entry to the next system call,
|
continue and stop on entry to the next system call,
|
||||||
which will not be executed.
|
which will not be executed. See the documentation on syscall-stops below.
|
||||||
For
|
For
|
||||||
.BR PTRACE_SYSEMU_SINGLESTEP ,
|
.BR PTRACE_SYSEMU_SINGLESTEP ,
|
||||||
do the same but also singlestep if not a system call.
|
do the same but also singlestep if not a system call.
|
||||||
|
@ -1568,18 +1568,35 @@ set to
|
||||||
.IR "(event<<8)\ |\ SIGTRAP" .
|
.IR "(event<<8)\ |\ SIGTRAP" .
|
||||||
.SS Syscall-stops
|
.SS Syscall-stops
|
||||||
If the tracee was restarted by
|
If the tracee was restarted by
|
||||||
.BR PTRACE_SYSCALL ,
|
.BR PTRACE_SYSCALL
|
||||||
|
or
|
||||||
|
.BR PTRACE_SYSEMU ,
|
||||||
the tracee enters
|
the tracee enters
|
||||||
syscall-enter-stop just prior to entering any system call.
|
syscall-enter-stop just prior to entering any system call (which
|
||||||
If the tracer restarts the tracee with
|
will not be executed if the restart was using
|
||||||
|
.BR PTRACE_SYSEMU,
|
||||||
|
regardless of any change made to registers at this point or how the
|
||||||
|
tracee is restarted after this stop).
|
||||||
|
No matter which method caused the syscall-entry-stop,
|
||||||
|
if the tracer restarts the tracee with
|
||||||
.BR PTRACE_SYSCALL ,
|
.BR PTRACE_SYSCALL ,
|
||||||
the tracee enters syscall-exit-stop when the system call is finished,
|
the tracee enters syscall-exit-stop when the system call is finished,
|
||||||
or if it is interrupted by a signal.
|
or if it is interrupted by a signal.
|
||||||
(That is, signal-delivery-stop never happens between syscall-enter-stop
|
(That is, signal-delivery-stop never happens between syscall-enter-stop
|
||||||
and syscall-exit-stop; it happens
|
and syscall-exit-stop; it happens
|
||||||
.I after
|
.I after
|
||||||
syscall-exit-stop.)
|
syscall-exit-stop.). If the tracee is continued using any other method
|
||||||
|
(
|
||||||
|
including
|
||||||
|
.BR PTRACE_SYSEMU
|
||||||
|
), no syscall-exit-stop occurs. Note that all mentions
|
||||||
|
.BR PTRACE_SYSEMU
|
||||||
|
apply equally to
|
||||||
|
.BR PTRACE_SYSEMU_SINGLESTEP.
|
||||||
.LP
|
.LP
|
||||||
|
However, even if the tracee is was continued using
|
||||||
|
.BR PTRACE_SYSCALL
|
||||||
|
, it is not guaranteed that the next stop will be a syscall-exit-stop.
|
||||||
Other possibilities are that the tracee may stop in a
|
Other possibilities are that the tracee may stop in a
|
||||||
.B PTRACE_EVENT
|
.B PTRACE_EVENT
|
||||||
stop, exit (if it entered
|
stop, exit (if it entered
|
||||||
|
@ -1695,12 +1712,11 @@ set to
|
||||||
.B SIGTRAP
|
.B SIGTRAP
|
||||||
or
|
or
|
||||||
.IR (SIGTRAP|0x80) .
|
.IR (SIGTRAP|0x80) .
|
||||||
.SS PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops
|
.SS PTRACE_SINGLESTEP stops
|
||||||
[Details of these kinds of stops are yet to be documented.]
|
[Details of these kinds of stops are yet to be documented.]
|
||||||
.\"
|
.\"
|
||||||
.\" FIXME .
|
.\" FIXME .
|
||||||
.\" document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
|
.\" document stops occurring with PTRACE_SINGLESTEP
|
||||||
.\" PTRACE_SYSEMU_SINGLESTEP
|
|
||||||
.SS Informational and restarting ptrace commands
|
.SS Informational and restarting ptrace commands
|
||||||
Most ptrace commands (all except
|
Most ptrace commands (all except
|
||||||
.BR PTRACE_ATTACH ,
|
.BR PTRACE_ATTACH ,
|
||||||
|
|
Loading…
Reference in New Issue