On 7/16/19 3:59 PM, John Baldwin wrote: > Author: jhb > Date: Tue Jul 16 22:59:15 2019 > New Revision: 350069 > URL: https://svnweb.freebsd.org/changeset/base/350069 > > Log: > Use PT_GET_SC_ARGS and PT_GET_SC_RET in truss. > > This removes all of the architecture-specific functions from truss. > > A per-ABI structure is still needed to map syscall numbers to names > and FreeBSD errno values to ABI error values as well as hold syscall > counters. However, the linker set of ABI structures is now replaced > with a simple table mapping ABI names to structures. This approach > permits sharing the same ABI structure among separate names such as > i386 a.out and ELF binaries as well as ELF v1 vs ELF v2 for powerpc64. > > A few differences are visible due to using PT_GET_SC_RET to fetch the > error value of a system call. Note that ktrace/kdump have had the > "new" behaviors for a long time already: > - System calls that return with EJUSTRETURN or ERESTART will now be > noticed and logged as such. Previously sigreturn (which uses > EJUSTRETURN) would report whatever random value was in the register > holding errno from the previous system call for example. Now it > reports EJUSTRETURN. > - System calls that return errno as their error value such as > posix_fallocate() and posix_fadvise() now report non-zero return > values as errors instead of success with a non-zero return value. > > Reviewed by: kib > MFC after: 1 month > Sponsored by: DARPA > Differential Revision: https://reviews.freebsd.org/D20963
One side effect of this change that I haven't tested is that I think this enables truss for 64-bit Linux and 32-bit FreeBSD binaries on aarch64. -- John Baldwin _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"