From: "David Prévot" <taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"David Prévot" <taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
Subject: [PATCH] ptrace.2: ffix and tfix
Date: Thu, 22 Mar 2012 15:23:06 -0400 [thread overview]
Message-ID: <1332444186-16345-1-git-send-email-taffit@debian.org> (raw)
---
man2/ptrace.2 | 51 ++++++++++++++++++++++++++++++++-------------------
1 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/man2/ptrace.2 b/man2/ptrace.2
index 5a8b648..457c6ac 100644
--- a/man2/ptrace.2
+++ b/man2/ptrace.2
@@ -277,7 +277,7 @@ which are specified by the following flags:
.BR PTRACE_O_TRACESYSGOOD " (since Linux 2.4.6)"
When delivering system call traps, set bit 7 in the signal number
(i.e., deliver
-.IR "SIGTRAP|0x80" ).
+.BR "SIGTRAP\ |\ 0x80" ).
This makes it easy for the tracer to distinguish
normal traps from those caused by a system call.
.RB ( PTRACE_O_TRACESYSGOOD
@@ -468,7 +468,7 @@ The
.I data
argument is treated as for
.BR PTRACE_CONT .
-.RI (addr
+.RI ( addr
is ignored.)
.TP
.BR PTRACE_SYSEMU ", " PTRACE_SYSEMU_SINGLESTEP " (since Linux 2.6.14)"
@@ -539,7 +539,9 @@ but will not necessarily have stopped
by the completion of this call; use
.BR waitpid (2)
to wait for the tracee to stop.
-See the "Attaching and detaching" subsection for additional information.
+See the
+.B Attaching and detaching
+subsection for additional information.
.RI ( addr
and
.I data
@@ -716,7 +718,9 @@ Example:
.\" describe how wait notifications queue (or not queue)
.LP
The following kinds of ptrace-stops exist: signal-delivery-stops,
-group-stop, PTRACE_EVENT stops, syscall-stops.
+group-stop,
+.B PTRACE_EVENT
+stops, syscall-stops.
They all are reported by
.BR waitpid (2)
with
@@ -730,7 +734,7 @@ and if there is ambiguity in that value, by querying
.I WSTOPSIG(status)
macro can't be used to perform this examination,
because it returns the value
-(\fIstatus\>>8)\ \fB&\ 0xff\fP\fP.)
+(\fIstatus\>>8\fP)\ \fB&\ 0xff\fP.)
.SS Signal-delivery-stop
When a (possibly multithreaded) process receives any signal except
.BR SIGKILL ,
@@ -761,7 +765,11 @@ true, with the signal returned by
If the signal is
.BR SIGTRAP ,
this may be a different kind of ptrace-stop;
-see the "Syscall-stops" and "execve" sections below for details.
+see the
+.B Syscall-stops
+and
+.B execve(2) under ptrace
+sections below for details.
If
.I WSTOPSIG(status)
returns a stopping signal, this may be a group-stop; see below.
@@ -837,7 +845,7 @@ The
signal has a side effect of waking up (all threads of)
a group-stopped process.
This side effect happens before signal-delivery-stop.
-The tracer can't suppress this side-effect (it can
+The tracer can't suppress this side effect (it can
only suppress signal injection, which only causes the
.BR SIGCONT
handler to not be executed in the tracee, if such a handler is installed).
@@ -997,7 +1005,7 @@ with the exit signal set to
.TP
.B PTRACE_EVENT_CLONE
Stop before return from
-.BR clone (2)
+.BR clone (2).
.TP
.B PTRACE_EVENT_VFORK_DONE
Stop before return from
@@ -1039,12 +1047,13 @@ to finish exiting.
on
.B PTRACE_EVENT
stops returns
-.B SIGTRAP in
+.B SIGTRAP
+in
.IR si_signo ,
with
.I si_code
set to
-.IR "(event<<8)\ |\ SIGTRAP" .
+(\fIevent<<8\fP)\ \fB|\ SIGTRAP\fP.
.SS Syscall-stops
If the tracee was restarted by
.BR PTRACE_SYSCALL ,
@@ -1086,7 +1095,7 @@ If the
option was set by the tracer, then
.I WSTOPSIG(status)
will give the value
-.IR "(SIGTRAP\ |\ 0x80)" .
+.RB ( "SIGTRAP\ |\ 0x80" ).
.LP
Syscall-stops can be distinguished from signal-delivery-stop with
.B SIGTRAP
@@ -1173,7 +1182,7 @@ with
set to
.B SIGTRAP
or
-.IR (SIGTRAP|0x80) .
+.RB ( "SIGTRAP\ |\ 0x80" ).
.SS PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops
[Details of these kinds of stops are yet to be documented.]
.\"
@@ -1243,7 +1252,7 @@ is
.BR PTRACE_SINGLESTEP ,
.BR PTRACE_SYSEMU ,
or
-.BR PTRACE_SYSEMU_SINGLESTEP.
+.BR PTRACE_SYSEMU_SINGLESTEP .
If the tracee is in signal-delivery-stop,
.I sig
is the signal to be injected (if it is nonzero).
@@ -1252,7 +1261,7 @@ Otherwise,
may be ignored.
(When restarting a tracee from a ptrace-stop other than signal-delivery-stop,
recommended practice is to always pass 0 in
-.I sig .)
+.IR sig .)
.SS Attaching and detaching
A thread can be attached to the tracer using the call
@@ -1285,9 +1294,11 @@ may be lost.
Since attaching sends
.B SIGSTOP
and the tracer usually suppresses it, this may cause a stray
-.I EINTR
+.B EINTR
return from the currently executing system call in the tracee,
-as described in the "signal injection and suppression" section.
+as described in the
+.B Signal injection and suppression
+section.
.LP
The request
@@ -1479,10 +1490,10 @@ Example: two threads call
at the same time:
.LP
.nf
-*** we get syscall-entry-stop in thread 1: **
+*** we get syscall-enter-stop in thread 1: **
PID1 execve("/bin/foo", "foo" <unfinished ...>
*** we issue PTRACE_SYSCALL for thread 1 **
-*** we get syscall-entry-stop in thread 2: **
+*** we get syscall-enter-stop in thread 2: **
PID2 execve("/bin/bar", "bar" <unfinished ...>
*** we issue PTRACE_SYSCALL for thread 2 **
*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **
@@ -1539,7 +1550,9 @@ several kinds of
notifications when the child process is traced by some other process.
.LP
Many of these bugs have been fixed, but as of Linux 2.6.38 several still
-exist; see BUGS below.
+exist; see
+.B BUGS
+below.
.LP
As of Linux 2.6.38, the following is believed to work correctly:
.IP * 3
--
1.7.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2012-03-22 19:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-22 19:23 David Prévot [this message]
[not found] ` <1332444186-16345-1-git-send-email-taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
2012-03-23 3:12 ` [PATCH 2/2] ptrace.2: more ffix and tfix David Prévot
[not found] ` <1332472329-31499-1-git-send-email-taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
2012-03-23 15:31 ` [PATCH 2/3] " David Prévot
[not found] ` <1332516711-8633-1-git-send-email-taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
2012-03-23 23:34 ` David Prévot
2012-03-23 23:36 ` Michael Kerrisk (man-pages)
2012-03-23 23:27 ` [PATCH 2/2] " Michael Kerrisk (man-pages)
2012-03-23 23:32 ` [PATCH 3/3] ptrace.2: another ffix David Prévot
[not found] ` <1332545535-8094-1-git-send-email-taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
2012-03-23 23:38 ` Michael Kerrisk (man-pages)
2012-03-23 23:14 ` [PATCH] ptrace.2: ffix and tfix Michael Kerrisk (man-pages)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1332444186-16345-1-git-send-email-taffit@debian.org \
--to=taffit-8fiuurrzop0dnm+yrofe0a@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox