2.0.0-1.10 (Apr 26th, 2022)
Tenth errata of the standalone userspace implementation.
This is a pre-release with limited functionality.
New features:
-
The trace() action supports array, struct, and union values.
-
The execname built-in variables is now implemented.
-
The inet_ntoa() subroutine has been implemented.
-
The progenyof() subroutine has been implemented.
-
The getmajor() and getminor() subroutines have been implemented.
-
The mutex_owned(), mutex_owner(), mutex_type_adaptive(), mutex_type_spin(), rw_read_held(), rw_write_held(), and rw_iswriter() have been implemented.
-
The alloca() and bcopy() subroutines have been implemented.
-
Associative arrays have been implemented. They are supported for both global and TLS variables.
-
Disassembler annotations have been added for associative arrays, register spills, and string constants.
-
The translators have been updated to support up to kernel series 5.16.
-
Faults will now report the PC (program counter) where the fault is reported.
Bugfixes:
-
Register allocation leaks were fixed.
-
NULL pointer verification has been optimized to avoid checking the same pointer more than once.
-
NULL pointers handling in ternary conditionals are now supported.
-
Casting of pointers to integers has been fixed.
-
Negative (immediate) values in signed conditionals are now printed correctly.
-
Disassembler annotations for TLS variables have been corrected.
-
The DIFO strtab handling has been reworked to fix multiple bugs.
Internal changes:
-
The strlen() subroutine is now implemented using the bpf_probe_read_str() BPF helper.
-
Strings are no longer stored using a length prefix.
-
BPF functions that are implemented in C or assembly code are no longer statically listed in the DTrace source code. Their existence is determined at runtime when the dlibs are loaded.
-
All load-time constants are now handled by the relocation mechanism.
-
New function dt_dis_insn() can be used by developers to disassemble a single instruction..
-
The implementation of pre and post arithmetic has been optimized.
-
Relocation support for the 'add immediate' instructions has been added.
-
The substr() subroutine has been optimized to reduce register pressure.
Testsuite changes:
-
Various tests have been moved from XFAIL to PASS status in response to the implementation of new features and in view of some bug fixes.
-
Various tests were improved.