Linux Advanced Debugging class is a 4-day course focused on the various techniques for analyzing, debugging and profiling Linux-based platforms from both user and kernel-space perspectives. The course begins in user space with a tools overview and then moves into GDB and other debugging techniques including the use of the profilers and Valgrind tool suite. The course continues into kernel space and examines the use of tools such as KDB, KGDB, JTAGs and kprobes. Oprofile, tracing utilities, the use of proc and sys file systems and even the lowly printk are also discussed in detail. Additional topics covered in this class include multi-core debugging and the use of processor affinity assignments.
This class is targeted at developers who need to understand what their applications are doing at the system level and the tools to help develop that understanding. Ranging from the 30,000 ft view of the system as a whole down to the microcosm of cache efficiency and process migration, this course will give the attendee the background into what tools are available to analyze particular problems and how to pick the right tool for the job.
The course materials include a workbook that contains all of the slides presented during the lectures as well as hands-on lab exercises. The on-site course is taught using Linux-based, multi-core laptops to demonstrate the concepts presented during the class