]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 287386,288949,288993:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 23 Oct 2015 01:27:44 +0000 (01:27 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 23 Oct 2015 01:27:44 +0000 (01:27 +0000)
commit7d91542bceeffcf9b3f572d494a2f756e9b63283
tree2210ab7fe1a3b71f90eb6a5150125774d10210ca
parent6feede67842054c077a63dca94da238c0cd2157d
MFC 287386,288949,288993:
Export current system call code and argument count for system call entry
and exit events.  To preserve the ABI, the new fields are moved to the
end of struct thread in these branches (unlike HEAD) and explicitly copied
when new threads are created.  In addition, the new tests are only added
in 10.

r287386:
Export current system call code and argument count for system call entry
and exit events. procfs stop events for system call tracing report these
values (argument count for system call entry and code for system call exit),
but ptrace() does not provide this information. (Note that while the system
call code can be determined in an ABI-specific manner during system call
entry, it is not generally available during system call exit.)

The values are exported via new fields at the end of struct ptrace_lwpinfo
available via PT_LWPINFO.

r288949:
Fix various edge cases related to system call tracing.
- Always set td_dbg_sc_* when P_TRACED is set on system call entry
  even if the debugger is not tracing system call entries.  This
  ensures the fields are valid when reporting other stops that
  occur at system call boundaries such as for PT_FOLLOW_FORKS or
  when only tracing system call exits.
- Set TDB_SCX when reporting the stop for a new child process in
  fork_return().  This causes the event to be reported as a system
  call exit.
- Report a system call exit event in fork_return() for new threads in
  a traced process.
- Copy td_dbg_sc_* to new threads instead of zeroing.  This ensures
  that td_dbg_sc_code in particular will report the system call that
  created the new thread or process when it reports a system call
  exit event in fork_return().
- Add new ptrace tests to verify that new child processes and threads
  report system call exit events with a valid pl_syscall_code via
  PT_LWPINFO.

r288993:
Document the recently added pl_syscall_* fields in struct ptrace_lwpinfo.

git-svn-id: svn://svn.freebsd.org/base/stable/10@289780 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
lib/libc/sys/ptrace.2
sys/kern/kern_fork.c
sys/kern/kern_thr.c
sys/kern/subr_syscall.c
sys/kern/sys_process.c
sys/sys/proc.h
sys/sys/ptrace.h
tests/sys/kern/Makefile
tests/sys/kern/ptrace_test.c