Chapter 5. Debugging, Tracing, and Profiling

In this chapter, we will cover the following recipes:

  • Analyzing core dumps
  • Native GDB debugging
  • Cross GDB debugging
  • Using strace for application debugging
  • Using the kernel's performance counters
  • Using static kernel tracing
  • Using dynamic kernel tracing
  • Using dynamic kernel events
  • Exploring Yocto's tracing and profiling tools
  • Tracing and profiling with perf
  • Using SystemTap
  • Using OProfile
  • Using LTTng
  • Using blktrace


Debugging an embedded Linux product is a common task not only during development, but also in deployed production systems.

Application debugging in embedded Linux is different from debugging in a traditional embedded device in that we don't have a flat memory model with an operating system and applications ...

Get Linux: Embedded Development now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.