Linux Advanced Debugging Tools

Linux Advanced Debugging Tools

This intensive course introduces you to kernel and userspace debugging techniques and frameworks. An ARMv8 machine and multiple QEMU emulated environments are used as a hardware platforms, on which variety of kernel interfaces, frameworks, and device drivers are explored, traced an analyzed.

The training consists of 70% practical exercises: debugging sample problems.

Course agenda

1. Embedded Linux - quick reference

Exercises

Prepare environment, configure SDK and IDE, compile and load external modules. Observe system behavior. Use serial console and network connection. Get familiar with ARM core and SoC documentation.

To reduce initial setup time and speed-up training, some parts of 'quick reference' are delivered ahead. Participants have time to setup workstations and get familiar with environment and documentation. The package contains ready-to-use virtual machine, as well as a complete detailed instruction. Some additional exercises are designed to improve understanding of advanced training topics.

2. User space debugging

Various advanced debugging tools and techniques for working with userspace applications.

Exercises

Practical exercises are performed on RaspberryPi hardware running an ARMv8 (64bit) system.

BSP build by Yocto Project is used for remote debugging and tracing. Tasks involve debugging and tracing applications, from simple ones to multi-library, multi-threaded programs.

3. Kernel debugging

This is the main topic of the training.

Exercises

Requirements

Participants should be familiar with:

Ideally: you should get our "Linux Device Drivers" training prior to this one.