summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-05-24 17:23:14 +0000
committerkib <kib@FreeBSD.org>2010-05-24 17:23:14 +0000
commitf3e521941db62f14add692cbd5abd7d2e3e3d08b (patch)
tree14f4acd8281b254300d6433278db7022349e5721 /lib/libc
parenta2bf33fb2600f7cd40f3da22d7775150f6880bdf (diff)
downloadFreeBSD-src-f3e521941db62f14add692cbd5abd7d2e3e3d08b.zip
FreeBSD-src-f3e521941db62f14add692cbd5abd7d2e3e3d08b.tar.gz
Improve the documentation for PT_LWPINFO. Note that some features are
not implemented on MIPS and ARM. MFC after: 1 month
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/sys/ptrace.261
1 files changed, 58 insertions, 3 deletions
diff --git a/lib/libc/sys/ptrace.2 b/lib/libc/sys/ptrace.2
index 8265fb6..ae0197f 100644
--- a/lib/libc/sys/ptrace.2
+++ b/lib/libc/sys/ptrace.2
@@ -2,7 +2,7 @@
.\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $
.\"
.\" This file is in the public domain.
-.Dd February 11, 2010
+.Dd May 24, 2010
.Dt PTRACE 2
.Os
.Sh NAME
@@ -289,8 +289,11 @@ argument specifies a pointer to a
which is defined as follows:
.Bd -literal
struct ptrace_lwpinfo {
- lwpid_t pl_lwpid; /* LWP described. */
- int pl_event; /* Event received. */
+ lwpid_t pl_lwpid;
+ int pl_event;
+ int pl_flags;
+ sigset_t pl_sigmask;
+ sigset_t pl_siglist;
};
.Ed
.Pp
@@ -298,6 +301,51 @@ The
.Fa data
argument is to be set to the size of the structure known to the caller.
This allows the structure to grow without affecting older programs.
+.Pp
+The fields in the
+.Vt "struct ptrace_lwpinfo"
+have the following meaning:
+.Bl -tag -width indent -compact
+.It pl_lwpid
+LWP id of the thread
+.It pl_event
+Event that caused the stop.
+Currently defined events are
+.Bl -tag -width indent -compact
+.It PL_EVENT_NONE
+No reason given
+.It PL_EVENT_SIGNAL
+Thread stopped due to the pending signal
+.El
+.It pl_flags
+Flags that specify additional details about observed stop.
+Currently defined flags are:
+.Bl -tag -width indent -compact
+.It PL_FLAG_SCE
+The thread stopped due to system call entry, right after the kernel is entered.
+The debugger may examine syscall arguments that are stored in memory and
+registers according to the ABI of the current process, and modify them,
+if needed.
+.It PL_FLAG_SCX
+The thread is stopped immediately before syscall is returning to the usermode.
+The debugger may examine system call return values in the ABI-defined registers
+and/or memory.
+.It PL_FLAG_EXEC
+When
+.Dv PL_FLAG_SCX
+is set, this flag may be additionally specified to inform that the
+program being executed by debuggee process has been changed by succesful
+execution of a system call from the
+.Fn execve 2
+family.
+.El
+.It pl_sigmask
+The current signal mask of the LWP
+.It pl_siglist
+The current pending set of signals for the LWP. Note that signals that
+are delivered to the process would not appear on an LWP siglist until
+the thread is selected for delivery.
+.El
.It PT_GETNUMLWPS
This request returns the number of kernel threads associated with the
traced process.
@@ -501,3 +549,10 @@ The
.Fn ptrace
function appeared in
.At v7 .
+.Sh BUGS
+The
+.Dv PL_FLAG_SCE ,
+.Dv PL_FLAG_SCX
+and
+.Dv PL_FLAG_EXEC
+are not implemented for MIPS and ARM architectures.
OpenPOWER on IntegriCloud