6413a1acf0
Add interface in ptrace(2) to track thread (LWP) events: - birth, - termination. The purpose of this thread is to keep track of the current thread state in a tracee and apply e.g. per-thread designed hardware assisted watchpoints. This interface reuses the EVENT_MASK and PROCESS_STATE interface, and shares it with PTRACE_FORK, PTRACE_VFORK and PTRACE_VFORK_DONE. Change the following structure: typedef struct ptrace_state { int pe_report_event; pid_t pe_other_pid; } ptrace_state_t; to typedef struct ptrace_state { int pe_report_event; union { pid_t _pe_other_pid; lwpid_t _pe_lwp; } _option; } ptrace_state_t; #define pe_other_pid _option._pe_other_pid #define pe_lwp _option._pe_lwp This keeps size of ptrace_state_t unchanged as both pid_t and lwpid_t are defined as int32_t-like integer. This change does not break existing prebuilt software and has minimal effect on necessity for source-code changes. In summary, this change should be binary compatible and shouldn't break build of existing software. Introduce new siginfo(5) type for LWP events under the SIGTRAP signal: TRAP_LWP. This change will help debuggers to distinguish exact source of SIGTRAP. Add two basic t_ptrace_wait* tests: lwp_create1: Verify that 1 LWP creation is intercepted by ptrace(2) with EVENT_MASK set to PTRACE_LWP_CREATE lwp_exit1: Verify that 1 LWP creation is intercepted by ptrace(2) with EVENT_MASK set to PTRACE_LWP_EXIT All tests are passing. Surfing the previous kernel ABI bump to 7.99.59 for PTRACE_VFORK{,_DONE}. Sponsored by <The NetBSD Foundation> |
||
---|---|---|
.. | ||
altq | ||
arch | ||
coda | ||
compat | ||
conf | ||
crypto | ||
ddb | ||
dev | ||
dist/pf | ||
external | ||
fs | ||
gdbscripts | ||
ipkdb | ||
kern | ||
lib | ||
miscfs | ||
modules | ||
net | ||
net80211 | ||
netatalk | ||
netbt | ||
netinet | ||
netinet6 | ||
netipsec | ||
netisdn | ||
netkey | ||
netmpls | ||
netnatm | ||
netsmb | ||
nfs | ||
opencrypto | ||
rump | ||
secmodel | ||
stand | ||
sys | ||
ufs | ||
uvm | ||
Makefile |