Tracing tools

In-depth tracing often has the desirous side effect of having the developer or tester spot performance bottlenecks as well as debug systems-level latencies and issues. Linux has a plethora of frameworks and tools available for tracing, both at user space and at the level of the kernel; some of the more relevant ones are mentioned here:

  • User space: ltrace(1) (trace library APIs), strace(1) (trace system calls; also try doing sudo perf trace), LTTng-ust, uprobes.
  • Kernel space: LTTng, ftrace (plus several frontends such as tracecmd(1), kernelshark GUIm), Kprobes—(including Jprobes—up to Kernel Version 4.14), Kretprobes; SystemTaprm) eBPF.

Get Hands-On System Programming with Linux now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.