DTrace Improvements

  • Accurately pair signal probes for non-ignored unhandled signals

    DTrace was improved to more accurately pair signal probes for non-ignored unhandled signals, by using the signal number, obtained from the original signal in the target task, in the signal-handled probe. Previously, the signal was translated into a SIGKILL because the signal effectively causes the process to be terminated. This change improves the accuracy of exit reporting.

  • Sleep code performance improvements and fixes

    Code that DTrace used to sleep between operations has been updated to improve performance during these loops and to avoid endless looping.

  • Dynamically allocated text in Oracle VM VirtualBox drivers workaround

    VirtualBox dynamically allocates space for executable text within the kernel. When these text addresses were encountered by stack trace back code, they were dropped or the stack trace was terminated. A patch was applied to DTrace to apply a workaround which allows DTrace to assume that executable pages in vmalloc or module areas as valid text addresses.

  • Missing psinfo for tasks run with PID 0 fixed

    A bug which caused some memory access errors when attempting to access the psinfo for a task running with PID 0 is resolved. (Bug ID 22561297)

  • Multiple probe firings of a Statically Defined Tracing (SDT) probe in a function now supported

    A patch was applied to allow DTrace to handle situations where a single SDT probe occurs more than once in a function, usually as a result of the compiler duplicating code fragments that contain an SDT probe. In these situations multiple probe firings were not previously reported, however the patch resolves this issue.