In this session I aim to go through some nice tricks that I have picked up whilst debugging and profiling workloads. Most of these have been learnt by banging my head against the desk, and would have saved me time had I known about them :-).
A lot of the material will be introductory, but I hope parts of it will be interesting for everyone.
I aim to:
- Introduce gdb.
- multi-threaded workloads.
- conditional breakpoints.
- Hooking it up to valgrind.
- Introduce ftrace
- Profile the kernel with "echo" and "cat". :-)
- Using function graphs to explore how the kernel works.
- Introduce Linux perf
- A quick primer on how PMU sampling works.
- Some basic tracing ("perf top", "perf record")
- Capturing other performance events.
- Intro to kprobes.
- Intro uprobes. [provisional]
- "perf script" to perform analysis.
- Introduce LTTNG [provisional]
- Hook it up to perf [provisional]
- The importance of debugging information
- Debugging a package with/without debugging info.
- Profiling a package with/without debugging info.