#
303975 |
|
11-Aug-2016 |
gjb |
Copy stable/11@r303970 to releng/11.0 as part of the 11.0-RELEASE cycle.
Prune svn:mergeinfo from the new branch, and rename it to RC1.
Update __FreeBSD_version.
Use the quarterly branch for the default FreeBSD.conf pkg(8) repo and the dvd1.iso packages population.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302408 |
|
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
301715 |
|
09-Jun-2016 |
jhb |
Add support for truss'ing Linux/x86_64 binaries under amd64.
Prodding by: xmj
|
#
295931 |
|
23-Feb-2016 |
jhb |
Add handling for non-native error values to libsysdecode.
Add two new functions, sysdecode_abi_to_freebsd_errno() and sysdecode_freebsd_to_abi_errno(), which convert errno values between the native FreeBSD ABI and other supported ABIs. Note that the mappings are not necessarily perfect meaning in some cases multiple errors in one ABI might map to a single error in another ABI. In that case, the reverse mapping will return one of the errors that maps, but which error is non-deterministic.
Change truss to always report the raw error value to the user but use libsysdecode to map it to a native errno value that can be used with strerror() to generate a description. Previously truss reported the "converted" error value. Now the user will always see the exact error value that the application sees.
Change kdump to report the truly raw error value to the user. Previously kdump would report the absolute value of the raw error value (so for Linux binaries it didn't output the FreeBSD error value, but the positive value of the Linux error). Now it reports the real (i.e. negative) error value for Linux binaries. Also, use libsysdecode to convert the native FreeBSD error reported in the ktrace record to the raw error used by the ABI. This means that the Linux ABI can now be handled directly in ktrsysret() and removes the need for linux_ktrsysret().
Reviewed by: bdrewery, kib Helpful notes: wblock (manpage) Differential Revision: https://reviews.freebsd.org/D5314
|
#
294849 |
|
26-Jan-2016 |
jhb |
Add support to libsysdecode for decoding system call names.
A new sysdecode_syscallname() function accepts a system call code and returns a string of the corresponding name (or NULL if the code is unknown). To support different process ABIs, the new function accepts a value from a new sysdecode_abi enum as its first argument to select the ABI in use. Current ABIs supported include FREEBSD (native binaries), FREEBSD32, LINUX, LINUX32, and CLOUDABI64. Note that not all ABIs are supported by all platforms. In general, a given ABI is only supported if a platform can execute binaries for that ABI.
To simplify the implementation, libsysdecode's build reuses the existing pre-generated files from the kernel source tree rather than duplicating new copies of said files during the build.
kdump(1) and truss(1) now use these functions to map system call identifiers to names. For kdump(1), a new 'syscallname()' function consolidates duplicated code from ktrsyscall() and ktrsyscallret(). The Linux ABI no longer requires custom handling for ktrsyscall() and linux_ktrsyscall() has been removed as a result.
Reviewed by: bdrewery Differential Revision: https://reviews.freebsd.org/D4823
|
#
292622 |
|
22-Dec-2015 |
jhb |
Move the mkioctls script to libsysdecode and use it to generate a sysdecode_ioctlname() function. This function matches the behavior of the truss variant in that it returns a pointer to a string description for known ioctls. The caller is responsible for displaying unknown ioctl requests. For kdump this meant moving the logic to handle unknown ioctl requests out of the generated function and into an ioctlname() function in kdump.c instead.
Differential Revision: https://reviews.freebsd.org/D4610
|
#
292236 |
|
15-Dec-2015 |
jhb |
Start on a new library (libsysdecode) that provides routines for decoding system call information such as system call arguments. Initially this will consist of pulling duplicated code out of truss and kdump though it may prove useful for other utilities in the future.
This commit moves the shared utrace(2) record parser out of kdump into the library and updates kdump and truss to use it. One difference from the previous version is that the library version treats unknown events that start with the "RTLD" signature as unknown events. This simplifies the interface and allows the consumer to decide how to handle all non-recognized events. Instead, this function only generates a string description for known malloc() and RTLD records.
Reviewed by: bdrewery Differential Revision: https://reviews.freebsd.org/D4537
|
#
290186 |
|
30-Oct-2015 |
ed |
Make truss work for CloudABI processes on aarch64.
This change copies over amd64-cloudabi64.c to aarch64-cloudabi.c and adjusts it to fetch the proper registers on aarch64. To reduce the amount of shared code, the errno conversion function is moved into a separate source file.
Reviewed by: jhb, andrew Differential Revision: https://reviews.freebsd.org/D4023
|
#
289239 |
|
13-Oct-2015 |
bdrewery |
Simplify syscall generation and ABI source file handling for the build.
This is to make the Makefile more easily extendable for new ABIs.
This also makes several other subtle changes: - The build now is given a list of ABIs to use based on the MACHINE_ARCH or MACHINE_CPUARCH. These ABIs have a related path in sys/ that is used to generate their syscalls. For each ABI to build check for a ABI.c, MACHINE_ARCH-ABI.c, or a MACHINE_CPUARCH-ABI.c. This matches the old behavior needed for archs such as powerpc* and mips*. - The ABI source file selection allows for simpler assignment of common ABIs such as "fbsd32" from sys/compat/freebsd32, or cloudabi64. - Expand 'fbsd' to 'freebsd' everywhere for consistency. - Split out the powerpc-fbsd.c file into a powerpc64-freebsd32.c to be more like the amd64-freebsd32.c file and to more easily allow the auto-generation of ABI handling to work. - Rename 'syscalls.h' to 'fbsd_syscalls.h' to lessen the ambiguity and avoid confusion with syscall.h (such as in r288997). - For non-native syscall header files, they are now renamed to be ABI_syscalls.h, where ABI is what ABI the Makefile is building. - Remove all of the makesyscalls config files. The "native" one being name i386.conf was a long outstanding bug. They were all the same except for the data they generated, so now it is just auto-generated as a build artifact. - The syscalls array is now fixed to be static in the syscalls header to remove the compiler warning about non-extern. This was worked around in the aarch64-fbsd.c file but not the others. - All syscall table names are now just 'syscallnames' since they don't need to be different as they are all static in their own ABI files. The alternative is to name them ABI_syscallnames which does not seem necessary.
Reviewed by: ed, jhb MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D3851
|
#
289004 |
|
08-Oct-2015 |
ed |
Properly format pointer size independent CloudABI system calls.
CloudABI has approximately 50 system calls that do not depend on the pointer size of the system. As the ABI is pretty compact, it takes little effort to each truss(8) the formatting rules for these system calls. Start off by formatting pointer size independent system calls.
Changes:
- Make it possible to include the CloudABI system call definitions in FreeBSD userspace builds. Add ${root}/sys to the truss(8) Makefile so we can pull in <compat/cloudabi/cloudabi_syscalldefs.h>. - Refactoring: patch up amd64-cloudabi64.c to use the CLOUDABI_* constants instead of rolling our own table. - Add table entries for all of the system calls. - Add new generic formatting types (UInt, IntArray) that we'll be using to format unsigned integers and arrays of integers. - Add CloudABI specific formatting types.
Approved by: jhb Differential Revision: https://reviews.freebsd.org/D3836
|
#
288957 |
|
06-Oct-2015 |
bdrewery |
truss: Add support for utrace(2).
This uses the kdump(1) utrace support code directly until a common library is created.
This allows malloc(3) tracing with MALLOC_CONF=utrace:true and rtld tracing with LD_UTRACE=1. Unknown utrace(2) data is just printed as hex.
PR: 43819 [inspired by] Reviewed by: jhb MFC after: 2 weeks Relnotes: yes Differential Revision: https://reviews.freebsd.org/D3819
|
#
288487 |
|
02-Oct-2015 |
ed |
Make truss print CloudABI system call names.
This change adds the bits that are necessary to fetch system call arguments and return values from trapframes for CloudABI. This allows us to properly print system calls with the right name. We need to make sure that we properly convert error numbers when system calls fail.
We still need to improve truss to pretty-print some of the system calls that have flags.
|
#
284268 |
|
11-Jun-2015 |
sjg |
Use INCLUDEDIR rather than hard coded /usr/include
Differential Revision: D2748 Reviewed by: brooks imp
|
#
234060 |
|
09-Apr-2012 |
dim |
Since truss also uses kdump's mkioctls script, pass the value of ${CPP} there too, similar to r234058.
MFC after: 1 week
|
#
226608 |
|
21-Oct-2011 |
des |
It turns out that truss also used kdump's mkioctls script, and expected ioctlname() to return a pointer to the name rather than print it. This did not show up in testing because truss had its own prototype for ioctlname(), so it would build fine and run fine as long as the program being traced did not issue an ioctl.
Teach mkioctls to generate different versions of ioctlname() based on its first command-line argument.
Pointed out by: Garrett Cooper <yanegomi@gmail.com>
|
#
211935 |
|
28-Aug-2010 |
nwhitehorn |
Fix breakage introduced in r211725 and improve functionality of truss on 64-bit powerpc by adding 32-bit compatibility features.
|
#
211725 |
|
23-Aug-2010 |
imp |
MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want to test of all the CPUs of a given family conform.
|
#
201386 |
|
02-Jan-2010 |
ed |
Build usr.bin/ with WARNS=6 by default.
Also add some missing $FreeBSD$ to keep svn happy.
|
#
179051 |
|
16-May-2008 |
jhb |
Teach truss about 32-bit FreeBSD and Linux binaries on amd64. Some additional work is needed to handle ABI-specific syscall argument parsing, but this gets the basic tracing working.
MFC after: 1 week
|
#
175980 |
|
05-Feb-2008 |
des |
Revert CLEANDEPFILES commit per ru@'s request; it does not really solve the problem. The correct fix will follow.
|
#
175937 |
|
03-Feb-2008 |
des |
Normally, when a header file is removed from the build (as i4b headers were recently), a simple 'make cleandepend; make depend' is sufficient to keep the tree buildable after a cvs update when doing incremental builds.
However, kdump and truss use a script which searches for header files that define ioctls, and generates C code that includes them. This script will usually not need updating when a header file is removed, so the normal dependency mechanism will not realize that it needs to be re-run. One is therefore left with code that references dead files but will only be removed by a full 'make clean', which defeats the purpose of incremental builds.
To work around this, modify the cleandepend target in bsd.dep.mk to also remove any files listed in a new variable named CLEANDEPFILES, and modify kdump's and truss's Makefiles accordingly.
MFC after: 2 weeks
|
#
168569 |
|
10-Apr-2007 |
delphij |
Make use of ptrace(2) instead of procfs in truss(1), eliminating yet another need of an available /proc/ mount.
Tested with: make universe Submitted by: howardsu Reviewed by: alfred
|
#
136910 |
|
24-Oct-2004 |
ru |
For variables that are only checked with defined(), don't provide any fake value.
|
#
127328 |
|
23-Mar-2004 |
alfred |
decode fcntl and mmap arguments.
|
#
115886 |
|
06-Jun-2003 |
marcel |
Use cat(1) instead of cp(1) so as not to break -DNOCLEAN builds when the file permissions of source files don't allow writing.
|
#
111178 |
|
20-Feb-2003 |
ru |
Removed extra parentheses.
|
#
101320 |
|
04-Aug-2002 |
jake |
Ported to sparc64.
|
#
94432 |
|
11-Apr-2002 |
ru |
I now don't seem to be able to reproduce the -DNOCLEAN buildworld breakage with ioctl.c. The .depend file should track dependencies just fine, and the worst we can have is to miss new ioctls.
But I still think it's a good idea to have -DNOCLEAN build produce the same ioctl.c as it would without -DNOCLEAN.
Prodded for a long time by: bde
|
#
90416 |
|
08-Feb-2002 |
markm |
Remove NO_WERRORs and WARNS=n's. To be revisited after GCC3.
|
#
87703 |
|
11-Dec-2001 |
markm |
Partial WARNS=1 fizes with NO_WERROR set to prevent world breakage. Use __FBSDID().
|
#
65849 |
|
14-Sep-2000 |
jkh |
cc -O -pipe -I/usr/src/usr.bin/kdump/../ktrace -I/usr/src/usr.bin/kdump/../.. Fix ioctl.c creation to deal with the depend case more properly.
Submitted by: Ruslan Ermilov <ru@sunbay.com>
|
#
65829 |
|
14-Sep-2000 |
jkh |
remove .PHONY to avoid gratuitous rebuild of ioctl.c each time.
Approved by: sef
|
#
64102 |
|
01-Aug-2000 |
ru |
Make auto-generated ioctl.c to be always considered out of date since it could potentially depend on any ${DESTDIR}/usr/include preprocessor file. This fixes the broken -DNOCLEAN world build I experienced yesterday.
|
#
54089 |
|
03-Dec-1999 |
marcel |
Fix for the new usage of mkioctls
|
#
53152 |
|
14-Nov-1999 |
marcel |
${MACHINE} -> ${MACHINE_ARCH}
All Makefiles now use MACHINE_ARCH for the target architecture. Unification is required for cross-building.
Tags added to: sys/boot/Makefile sys/boot/arc/loader/Makefile sys/kern/Makefile usr.bin/cpp/Makefile usr.bin/gcore/Makefile usr.bin/truss/Makefile
usr.bin/gcore/Makefile: fixed typo: MACHINDE -> MACHINE_ARCH
|
#
40035 |
|
07-Oct-1998 |
kato |
Use MACHINE_ARCH instead of MACHINE to detect x86 arch.
Pointed out by: Akio Morita <amorita@meadow.scphys.kyoto-u.ac.jp>
|
#
39908 |
|
03-Oct-1998 |
sef |
Alpha support for truss. I tested this on both bento and beast (thanks, Jordan, for pointing me at beast!). There should be no change for the i386 version.
|
#
32367 |
|
09-Jan-1998 |
sef |
Revert the changes yet again, after some email from Bruce. Sorry.
|
#
32355 |
|
09-Jan-1998 |
sef |
Proper way to do the previous mis-commit. Still not quite right, because some header files (e.g., <err.h>) include <machine/something.h>, and this will not pick up the right header files, so it may be removed eventually anyway. But some people who are not willing to build the right way apparantly want this, so this is for them.
|
#
32354 |
|
09-Jan-1998 |
sef |
Get rid of the bogus include -- it is incomplete (as it doesn't handle anything other than <sys/*.h>), and unnecessary in most cases. (The situations where it is necesary can be dealt with by manually-made symlinks, which is acceptable since they should only occur during testing. Remember: the tree does not compile well if you do not have matching header files installed. Half-baked -I directives don't cover enough of the cases.)
|
#
32306 |
|
07-Jan-1998 |
jmg |
include sys so it builds on 2.2.x also, fix misspelling of -1 (as EOF for getopt)
|
#
31571 |
|
06-Dec-1997 |
sef |
First cut at printing out ioctl names intelligently. Note that this doesn't handle linux ioctls (yet?). This uses the mkioctl script from kdump, bless its little heart.
Reviewed by: Mike Smith
|
#
31567 |
|
06-Dec-1997 |
sef |
Truss program. Requires procfs.
|