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"

Reply via email to