Project News: DTrace

[ Project Home  |  News  |  Downloads  |  Docs  |  Mailing Lists  |  Source Control  |  Issues ]


2014.10.13: DTrace userspace 0.4.4, kernel modules 0.4.3, libdtrace-ctf 0.4.2


All RPMs are available on the Unbreakable Linux Network.
Packaging and build changes:
 - libdtrace-ctf can now be built with GNU Make 4.0.
New features:
 - Timer based profile-* probes (profile provider).  These probes use the
   omni-present cyclic support in the UEK3 kernel (3.8.13-32 and later) to
   fire probes at a speciic frequency/interval on every active CPU.
New userspace options:
 - -xcppargs: Additional arguments to pass to the preprocessor when run over D
    scripts by DTrace.
 - pid and ppid are now correctly derived for multithreaded processes, pointing
   to the POSIX pid and parent respectively rather than the thread and thread
   group leader.
 - Major reworking of the dtrace_getufpstack() implementation to handle
   locking, stack detection, and potential page fault while accessing the
   stack of a task.  As a consequence, ustack(), usym(), uaddr() and umod() of
   multithreaded processes no longer crashes the system, oopses the kernel,
   hangs the process being probed, crashes dtrace(1) itself, or runs dtrace
   or the system as a whole out of filehandles.
 - Kill -9'ing a running dtrace will no longer leave breakpoints outstanding in
   processes with no controlling terminal that were grabbed as a side effect of
   ustack(), usym(), uaddr() or umod); as a side effect, symbol resolution will
   be less accurate for such processes.  Grabbing a process with no controlling
   terminal via dtrace -p restores full symbol resolution accuracy for these
   processes, at the cost of dropping breakpoints in them again.  Processes with
   a controlling terminal are still treated as in prior releases.
 - Interrupting dtrace with a SIGINT while monitored processes are dying
   simultaneously now consistently stops it rather than hanging forever.
 - dtrace's symbol-resolution paths are armoured against various problems which
   could occur when processes died while lookups were underway.
 - Resolving kernel symbols located at the start of modules will no longer
   cause dtrace userspace to dereference uninitialized memory as a pointer.
 - Several memory-allocation, underrun and overrun bugs in process handling
   were fixed.  With sufficient ingenuity these may be exploitable by local
   users who can craft and run unusual ELF executables and arrange for dtrace
   to attach to them.
 - The DOF ELF object generated by dtrace -G no longer requires an executable