0.5.2 (Feb 3rd, 2016)

Kernel release:

4.1.12-33.el6uek

Crash fixes:

  • Programs containing USDT probes can crash at startup or dlopen() time if shared libraries are mapped into the top half of the address space. This never happens on x86-64 but is common on SPARC64: dtrace -G should be rerun on programs on such platforms that contain USDT probes, to link in the fixed ELF constructor.

Performance improvements:

  • dtrace(1) no longer wastes time in a CPU-heavy busywaiting loop: previously, the sleeping code was mistakenly picking a time in the past to sleep to roughly half the time

Bugfixes:

  • dtrace -c and -p now work on SPARC64.

  • When both entry and return probes were enabled for a system call, upon disabling the first, the function pointer in the system call table got reset to its default value even though the 2nd probe might still be active. This could cause race conditions in the state of the system call probing.

  • Access to the SPARC64 R_L7 register was consistently failing due to an off-by-one bug.

  • It was possible to read past the beginning of the stack for a user process. The mechanism for reading stack slots also got updated to increase efficiency, consistency and reliability across architectures.

  • While reading the stack of a userspace process, the stack bias was not being applied for architectures that need it, causing an abundance of essentially invalid values to pollute the result.