Project News: DTrace
2019.03.11: DTrace userspace 1.2.0, libdtrace-ctf 1.1.0
New features since 1.0.2:
- Translator changes for the 4.15 -- 4.20 kernels.
- New action pcap(struct sk_buff *, proto) where proto is one of the PCAP_*
constants from /usr/lib64/dtrace/*/pcap.d. If tshark is installed,
this produces formatted packet traces; if it is not, raw memory dumps
are produced, as with tracemem(). If freopen() is used to redirect
DTrace output to a file, the raw packets are written there.
New options since 1.0.2:
- -xctfpath: Specify the name of a CTF archive to use with the running
kernel, for when it cannot be found in the usual place under
Bugfixes since 1.0.2:
- Fix a variety of small memory leaks and use-of-uninitialized-data bugs.
- Clean up compiler warnings.
Build-time improvements since 1.0.2:
- Improve the generation of signal.d: work better with newer glibc versions.
Library interface changes since 1.0.2:
- Add more DTRACE_PROBE definitions to sdt.h, for SystemTap compatibility.
Bugfixes since 1.0.0:
- The -c option works on ARM64 now, as does the -x evaltime option.
- Improvements to the testsuite and testsuite runner.
- No longer crash when attempting to trace ourself.
- Fixes for crashes and deadlocks of both DTrace and the traced process when
DTrace terminates at the wrong instant.
- No longer deadlock when -c/-p processes create new threads.
- Stop the disassembler coredumping.
libdtrace-ctf changes since 0.8.1:
- New file format boosting the number of types from 32767*2 to 2^31*2, the
number of struct and union members and enumerated values from 2^10 to
2^25, and the number of type kinds to 64 (for future expansion).
The old file format is still fully supported.
- Add ctf_add_struct_sized() and ctf_add_union_sized(), allowing callers to
specify a size for structs and unions which is larger than the size computed
by aligning the last element. This is useful if the compiler adds extra
padding beyond that which would be added by the last element alone.
- ctf_ar now extracts CTF data from CTF archives without recompressing or
changing it. It supports a -u option to force opening and recompressing:
note that this will upgrade CTFv1 data to v2 in the process.
- Fix a bug causing the heap to be mprotect()ed if a CTF section was passed
in to ctf_bufopen() containing contents generated by libdtrace-ctf 1.0.0
- Work around some very minor CTF-generation bugs seen in CTF in the wild,
converting a few type conflict errors into silent continued operation.
- ctf_dump now shows the size of each type.