kamil ff43c343b5 Improve the proc_stoptrace() function
proc_stoptrace() is dedicated for emitting a syscall trap for a debugger,
either on entry or exit of the system function routine.

Changes:
 - Change an if() branch of an invalid condition of being traced by
   initproc (PID1) to KASSERT(9).
 - Assert that the current process has set appropriate flags (PSL_TRACED
   and PSL_SYSCALL).
 - Use ktrpoint(KTR_PSIG) and ktrpsig()/e_ktrpsig() in order to register
   the emitted signal for the ktrace(1) event debugging.

Example of the new output from kdump(1) for the syscall debugger traps,
containing SIGTRAP notification with TRAP_SCE and TRAP_SCX (around
the getpid(2) call).

$ kdump /tmp/1.dat.qemu |grep 663
   588      1 t_ptrace_waitpid RET   fork 663/0x297
   663      1 t_ptrace_waitpid EMUL  "netbsd"
   663      1 t_ptrace_waitpid RET   fork 0
   663      1 t_ptrace_waitpid CALL  ptrace(PT_TRACE_ME,0,0,0)
   663      1 t_ptrace_waitpid RET   ptrace 0
   663      1 t_ptrace_waitpid CALL  _lwp_self
   663      1 t_ptrace_waitpid RET   _lwp_self 1
   663      1 t_ptrace_waitpid CALL  _lwp_kill(1,0x11)
   663      1 t_ptrace_waitpid RET   _lwp_kill 0
   588      1 t_ptrace_waitpid RET   __wait450 663/0x297
   663      1 t_ptrace_waitpid CALL  getpid
   588      1 t_ptrace_waitpid RET   __wait450 663/0x297
   663      1 t_ptrace_waitpid PSIG  SIGTRAP SIG_DFL: code=TRAP_SCE, addr=0x0, trap=0)
   663      1 t_ptrace_waitpid RET   getpid 663/0x297, 588/0x24c
   588      1 t_ptrace_waitpid RET   __wait450 663/0x297
   663      1 t_ptrace_waitpid PSIG  SIGTRAP SIG_DFL: code=TRAP_SCX, addr=0x0, trap=0)
   663      1 t_ptrace_waitpid CALL  exit(5)
   588      1 t_ptrace_waitpid RET   __wait450 663/0x297

Sponsored by <The NetBSD Foundation>
2018-05-01 13:48:38 +00:00
2018-04-30 21:02:39 +00:00
2018-04-28 12:45:03 +00:00
2018-03-07 08:25:43 +00:00
2018-04-11 00:26:38 +00:00
2018-05-01 13:48:38 +00:00
2018-04-29 13:56:00 +00:00
2018-05-01 12:38:39 +00:00
Description
No description provided
3.1 GiB
Languages
C 85.3%
Roff 7.2%
Assembly 3.1%
Shell 1.7%
Makefile 1.2%
Other 0.9%