Date: Tue, 26 Nov 2019 19:13:08 -0600 From: Kyle Evans <kevans@freebsd.org> To: John Baldwin <jhb@freebsd.org> Cc: src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>, svn-src-head <svn-src-head@freebsd.org> Subject: Re: svn commit: r350017 - in head: lib/libc/sys sys/kern sys/sys tests/sys/kern Message-ID: <CACNAnaFxPnrLoNFxoFxvQfVJwTCzF=je4-0azCD11W7WX2OaSw@mail.gmail.com> In-Reply-To: <8b7be4f7-b8df-6951-5faa-7d35795a6a4c@FreeBSD.org> References: <201907152148.x6FLm3EL068478@repo.freebsd.org> <CACNAnaGXqFo2Q1yFqYWk_pet0jYS6g11wSoOvCMT%2BEy7phP7eA@mail.gmail.com> <8b7be4f7-b8df-6951-5faa-7d35795a6a4c@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 26, 2019 at 6:18 PM John Baldwin <jhb@freebsd.org> wrote: > > On 11/25/19 11:01 AM, Kyle Evans wrote: > > On Mon, Jul 15, 2019 at 4:48 PM John Baldwin <jhb@freebsd.org> wrote: > >> > >> Author: jhb > >> Date: Mon Jul 15 21:48:02 2019 > >> New Revision: 350017 > >> URL: https://svnweb.freebsd.org/changeset/base/350017 > >> > >> Log: > >> Add ptrace op PT_GET_SC_RET. > >> > >> This ptrace operation returns a structure containing the error and > >> return values from the current system call. It is only valid when a > >> thread is stopped during a system call exit (PL_FLAG_SCX is set). > >> > >> The sr_error member holds the error value from the system call. Note > >> that this error value is the native FreeBSD error value that has _not_ > >> been translated to an ABI-specific error value similar to the values > >> logged to ktrace. > >> > >> If sr_error is zero, then the return values of the system call will be > >> set in sr_retval[0] and sr_retval[1]. > >> > >> Reviewed by: kib > >> MFC after: 1 month > >> Sponsored by: DARPA > >> Differential Revision: https://reviews.freebsd.org/D20901 > >> > >> Modified: > >> head/lib/libc/sys/ptrace.2 > >> head/sys/kern/sys_process.c > >> head/sys/sys/ptrace.h > >> head/tests/sys/kern/ptrace_test.c > >> > > > > Hey John, > > > > Any objection to MFC'ing this to stable/12 at least? I've found this > > to be almost-required in the ptrace user I've been working on > > lately... I certainly ripped out plenty of hair before realizing that > > it wasn't detecting error returns properly. > > Hmm, I did have it in my queue, but not the most urgent priority. Are > you using truss or something else? You can achieve the same thing without > the new op, it just requires arch-specific code to fetch the error status > and return value from registers. > Alrighty- that's good to hear. =-) It's actually an out-of-tree ptrace(2) user that's executing syscalls in the process it's attaching to. It works most of the time because the syscalls it's executing don't generally fail (mmap a single page was the only use until I started dorking with it), so it's not quite worth the overhead of adding the arch-specific bits to detect error (it grabs the return value, at least) -- this is generally just a small nicety for those of us debugging it. Thanks, Kyle Evans
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaFxPnrLoNFxoFxvQfVJwTCzF=je4-0azCD11W7WX2OaSw>