freebsd-nq/lib/libc
John Baldwin 8d570f64aa Add a mask of optional ptrace() events.
ptrace() now stores a mask of optional events in p_ptevents.  Currently
this mask is a single integer, but it can be expanded into an array of
integers in the future.

Two new ptrace requests can be used to manipulate the event mask:
PT_GET_EVENT_MASK fetches the current event mask and PT_SET_EVENT_MASK
sets the current event mask.

The current set of events include:
- PTRACE_EXEC: trace calls to execve().
- PTRACE_SCE: trace system call entries.
- PTRACE_SCX: trace syscam call exits.
- PTRACE_FORK: trace forks and auto-attach to new child processes.
- PTRACE_LWP: trace LWP events.

The S_PT_SCX and S_PT_SCE events in the procfs p_stops flags have
been replaced by PTRACE_SCE and PTRACE_SCX.  PTRACE_FORK replaces
P_FOLLOW_FORK and PTRACE_LWP replaces P2_LWP_EVENTS.

The PT_FOLLOW_FORK and PT_LWP_EVENTS ptrace requests remain for
compatibility but now simply toggle corresponding flags in the
event mask.

While here, document that PT_SYSCALL, PT_TO_SCE, and PT_TO_SCX both
modify the event mask and continue the traced process.

Reviewed by:	kib
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D7044
2016-07-15 15:32:09 +00:00
..
aarch64 Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
amd64 Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
arm Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
capability
compat-43
db Fix prototype of dbm_open(). 2016-05-31 18:32:57 +00:00
gdtoa META MODE: Don't create .meta files when symlinking sources into the obj directory. 2015-11-25 19:44:43 +00:00
gen 1) Eliminate possibility to call __*collate_range_cmp() with inclomplete 2016-07-14 09:07:25 +00:00
gmon Replace the last non-optional use of sbrk() in the tree with mmap(). 2016-01-21 18:17:19 +00:00
i386 Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
iconv citrus: Remove redundant code in _citrus_esdb_get_list(). 2016-06-02 17:28:39 +00:00
include Add implementation of robust mutexes, hopefully close enough to the 2016-05-17 09:56:22 +00:00
inet libc: do not include <sys/types.h> where <sys/param.h> was already included 2016-04-18 21:05:15 +00:00
isc libc: do not include <sys/types.h> where <sys/param.h> was already included 2016-04-18 21:05:15 +00:00
locale 1) Eliminate possibility to call __*collate_range_cmp() with inclomplete 2016-07-14 09:07:25 +00:00
md
mips Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
nameser libc: spelling fixes. 2016-04-30 01:24:24 +00:00
net Revert r301707 2016-06-08 23:30:13 +00:00
nls Move logic to destroy a struct catentry to its own function. 2016-02-02 23:33:58 +00:00
posix1e libc: spelling fixes. 2016-04-30 01:24:24 +00:00
powerpc Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
powerpc64 Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
quad
regex 1) Eliminate possibility to call __*collate_range_cmp() with inclomplete 2016-07-14 09:07:25 +00:00
resolv Don't leak addrinfo if ai->ai_addrlen <= minsiz test fails. 2016-06-08 09:40:06 +00:00
riscv Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
rpc Use on crypto.x and rpc.x from the source tree. 2016-06-28 19:53:16 +00:00
secure libc: do not include <sys/types.h> where <sys/param.h> was already included 2016-04-18 21:05:15 +00:00
softfloat libc: replace 0 with NULL for pointers. 2016-04-10 19:33:58 +00:00
sparc64 Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
stdio 1) Eliminate possibility to call __*collate_range_cmp() with inclomplete 2016-07-14 09:07:25 +00:00
stdlib Reflect error indication according to POSIX and what those functions 2016-06-05 15:46:14 +00:00
stdtime Implement (ACFLAGS|CFLAGS|CXXFLAGS).SRC globally. 2016-03-26 03:46:12 +00:00
string libc: spelling fixes. 2016-04-30 01:24:24 +00:00
sys Add a mask of optional ptrace() events. 2016-07-15 15:32:09 +00:00
tests This commit addresses regression introduceded in r302177 2016-06-28 07:47:42 +00:00
uuid libc: replace 0 with NULL for pointers. 2016-04-10 19:33:58 +00:00
xdr libc/xdr: unsign some loop indexes. 2016-05-06 16:03:40 +00:00
yp Use on crypto.x and rpc.x from the source tree. 2016-06-28 19:53:16 +00:00
libc.ldscript
Makefile Make armv6 hard float abi by default. Kill armv6hf. 2016-05-18 06:01:18 +00:00
Makefile.depend DIRDEPS_BUILD: Regenerate without local dependencies. 2016-02-24 17:20:11 +00:00
Versions.def