Date: Mon, 12 Jul 2004 05:07:50 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_exit.c kern_sig.c sys_process.c src/sys/sys proc.h ptrace.h Message-ID: <200407120507.i6C57ooG001345@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
marcel 2004-07-12 05:07:50 UTC FreeBSD src repository Modified files: sys/kern kern_exit.c kern_sig.c sys_process.c sys/sys proc.h ptrace.h Log: Implement the PT_LWPINFO request. This request can be used by the tracing process to obtain information about the LWP that caused the traced process to stop. Debuggers can use this information to select the thread currently running on the LWP as the current thread. The request has been made compatible with NetBSD for as much as possible. This implementation differs from NetBSD in the following ways: 1. The data argument is allowed to be smaller than the size of the ptrace_lwpinfo structure known to the kernel, but not 0. This is opposite to what NetBSD allows. The reason for this is that we can extend the structure without affecting older binaries. 2. On NetBSD the tracing process is to set the pl_lwpid field to the Id of the LWP it wants information of. We don't do that. Our ptrace interface allows passing the LWP Id instead of the PID. The tracing process is to set the PID to the LWP Id it wants information of. 3. When the PID is actually the PID of the tracing process, this request returns the information about the LWP that caused the process to stop. This was the whole purpose of the request in the first place. When the traced process has exited, this request will return the LWP Id 0, indicating that the process state is not the result of an event specific to a LWP. Revision Changes Path 1.239 +1 -0 src/sys/kern/kern_exit.c 1.283 +3 -0 src/sys/kern/kern_sig.c 1.122 +19 -0 src/sys/kern/sys_process.c 1.385 +1 -0 src/sys/sys/proc.h 1.23 +9 -0 src/sys/sys/ptrace.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200407120507.i6C57ooG001345>