Registration

Register
Login

Content

Call For Papers
Schedule
Presentations
Tutorials
BOFS

Event Info

Venue
Travel
FAQ
Link Us

Additional Info

Sponsors
Special Events Contact Us
Media
Archives
Home



Ptrace, Utrace, Uprobes: Lightweight, Dynamic Tracing of User Apps

James A. Keniston (kenistoj@us.ibm.com)

The ptrace system-call API, though useful for many tools such as gdb and strace, generally proves unsatisfactory when tracing multithreaded or multi-process applications, especially in timing-dependent debugging scenarios. With the utrace kernel API, a kernel-side instrumentation module can track interesting events in traced processes. The uprobes kernel API exploits and extends utrace to provide kprobes-like, breakpoint-based probing of user applications.

We describe how utrace, uprobes, and kprobes together provide an instrumentation facility that overcomes some limitations of ptrace. For attendees, familiarity with a tracing API such as ptrace or kprobes will be helpful but not essential.