Der größte Fortschritt in diesem Bereich sei der Infrastruktur Uprobes zu verdanken. Sie sei zwar bereits seit 2007 in Entwicklung, aber erst seit Ende 2011 in den Linux-Kernel 3.5 eingezogen. Das Feature lässt sich mit der Konfigurationsvariablen "CONFIG_UPROBES" aktivieren.

Uprobes ermöglicht dynamisches Userspace-Tracing und erlaubt mehrere Consumer per Probe. Außerdem beherrscht es Execution out of Line. Dabei wird eine Instruktion durch den Breakpoint ersetzt und an einem anderen Ort gespeichert. Beim Resume nach der Tracing-Aktion kommt die Instruktion zur Ausführung, der Breakpoint bleibt aber an seinem Speicherort bestehen. Damit eignet sich Uprobes auch für Multithread-Anwendungen.

Die jüngste Neuerung der vergangenen Wochen sind Uretprobes - Return Probes, die beim Zurückkehren aus einer Funktion ausgelöst werden. Sie sind eine Entwicklung von Anton Arapov bei Red Hat, experimentelle Fedora-Kernel sind bereits damit ausgestattet. Mit der neuen Uprobes-Infrastruktur arbeiten neuere Versionen der Tools Perf, Ftrace und Systemtap zusammen.

Als recht junges Werkzeug stellte Zannoni das Ftrace-Tool Trace-cmd von Steven Rostedt vor. Version 2.0 ist im Oktober erschienen und bringt eine interessante Funktion für Embedded-Entwickler mit: Sie können auf dem Zielsystem einen Daemon laufen lassen, der die ermittelten Informationen per UDP an ihre Workstation sendet.

Daneben stellte die Oracle-Entwicklerin kurz den Port des Solaris-Tools Dtrace auf Linux vor. Es soll bestehende Dtrace-Skripte unterstützen, erfahrene Solaris-Admins sollen ihr bestehendes Know-how nutzen können. Derzeit befindet es sich noch im Stadium eines Technology Preview und erschien zuletzt im April in Version 0.3.1. Der Dtrace-Kernel-Code steht unter GPL, das Modul derzeit noch unter CDDL. Elena Zannoni hofft aber auf eine baldige Lizenzierung unter GPL, die besser in den Linux-Kernel passt.

Für die Zukunft sieht die Entwicklerin eine steigende Nachfrage nach Tracing für Kernel und Userspace. Die Bedürfnisse der Anwender sind dabei vielfältig: Embedded-Entwickler wünschen möglichst geringen Overhead und Speicherverbrauch, die Enterprise-Kunden möchten Skalierbarkeit. Daneben will niemand gerne den Kernel neu kompilieren. High-Level-Ansichten zum Zoomen, Datenfilterung sowie in manchen Fällen auch Datenschutz-Konformität stehen ebenfalls auf der Wunschliste.