summaryrefslogtreecommitdiff
path: root/sys/modules/compat
diff options
context:
space:
mode:
authorkamil <kamil@NetBSD.org>2018-05-01 16:37:23 +0000
committerkamil <kamil@NetBSD.org>2018-05-01 16:37:23 +0000
commit9d02027080155d5c5f8a4aa515c658328fa6eeb2 (patch)
tree4319129cf2d201608e4282cde4e6e2c08d1a1c98 /sys/modules/compat
parent5366ef43b53d63d81ecc71786daabcae5f6e0432 (diff)
Implement PTRACE_VFORK
Add support for tracing vfork(2) events in the context of ptrace(2). This API covers other frontends to fork1(9) like posix_spawn(2) or clone(2), if they cause parent to wait for exec(2) or exit(2) of the child. Changes: - Add new argument to sigswitch() determining whether we need to acquire the proc_lock or whether it's already held. - Refactor fork1(9) for fork(2) and vfork(2)-like events. Call sigswitch() from fork(1) for forking or vforking parent, instead of emitting kpsignal(9). We need to emit the signal and suspend the parent, returning to user and relock proc_lock. - Add missing prototype for proc_stop_done() in kern_sig.c. - Make sigswitch a public function accessible from other kernel code including <sys/signalvar.h>. - Remove an entry about unimplemented PTRACE_VFORK in the ptrace(2) man page. - Permin PTRACE_VFORK in the ptrace(2) frontend for userland. - Remove expected failure for unimplemented PTRACE_VFORK tests in the ATF ptrace(2) test-suite. - Relax signal routing constraints under a debugger for a vfork(2)ed child. This intended to protect from signaling a parent of a vfork(2)ed child that called PT_TRACE_ME, but wrongly misrouted other signals in vfork(2) use-cases. Add XXX comments about still existing problems and future enhancements: - correct vfork(2) + PT_TRACE_ME handling. - fork1(2) handling of scenarios when a process is collected in valid but rare cases. All ATF ptrace(2) fork[1-8] and vfork[1-8] tests pass. Fix PR kern/51630 by Kamil Rytarowski (myself). Sponsored by <The NetBSD Foundation>
Diffstat (limited to 'sys/modules/compat')
0 files changed, 0 insertions, 0 deletions
m struct componentname. curlwp should be usedpooka 2007-02-21Replace the Mach-derived boolean_t type with the C99 bool type. Athorpej 2006-07-21- Use the LWP cached credentials where sane.ad 2006-05-14integrate kauth.elad 2006-01-20Use uintN_t.uwe 2006-01-02In kloader_open print errno if namei or vn_open fail.uwe 2005-12-11merge ktrace-lwp.christos 2005-09-24Remove the casts in the previous commit and use %zx.peter 2005-09-24Add casts to make this compile when KLOADER_DEBUG is defined.peter 2005-09-24Fix two typos.peter 2005-05-31Preserve const in cast.uwe 2004-09-17There's no need to pass a proc value when using UIO_SYSSPACE withskrll 2004-07-06MI part of kloader moved to dev/kloader.c from arch/hpc/hpc/uch