2.0.3-1 (Jun 10th, 2025)
This release is only available on Oracle Linux 10.
New features:
-
USDT probes in executables and shared libraries that are compiled with LTO are now supported. USDT probe definitions are now recorded in .note.usdt ELF notes.
-
The pr_psargs member of the psinfo_t translator is now implemented. It uses the new execargs builtin variable.
-
The pid provider now supports offset-based instruction probes.
Bugfixes:
-
Automatic selection of fprobe vs kprobe based FBT probes has been corrected.
-
Trampoline use of the BPF stack for scratch space has been corrected.
-
The rawfbt provider has been fixed to perform symbol lookups on the actual true symbol name.
-
BPF attach type detection has been fixed.
-
The probeprov, probemod, probefunc, and probename builtin variables now report the correct values for late USDT processes.
-
The value of arg3 for sched:::enqueue and sched:::dequeue has been corrected.
-
No longer register fbt and rawfbt twice.
-
Discovery of new probes now correctly loops through all registered providers rather than just the initial providers.
User-visible changes:
-
The kernel symbol name filter has been made less strict.
-
Failures in enabling a probe now report the probe name.
Internal changes:
-
Builtin variables are now implemented with individual functions rather than a single large function, reducing compiled BPF program size.
-
Relocation types R_BPF_64_ABS64 and R_BPF_64_ABS32 are now supported.
-
The proc provider has been implemented using the standard SDT provider implementation.
-
The fbt and rawfbt providers have been consolidated, and significant performance improvements have been applied.
-
The hashtable implementation has been moved to libcommon and is now used by dtprobed and libdtrace.
Testsuite changes:
-
Many testcases have been improved.
-
Use of bash and gawk throughout the testsuite has been made more consistent.
-
Tests can now use CC, OBJCOPY, OBJDUMP, NM, ... as shell variables in scripts to allow setting values that apply to all tests.