DBG-120 · Debugging & Tracing · Advanced
kgdb & Live Kernel Debugging — full syllabus
Interactive kernel debugging over serial and network, plus dynamic debug for cases where stopping is not an option.
Who this course is for
Kernel and driver developers facing bugs that need the machine stopped mid-thought — state inspection, stepping and watchpoints — and who also need to know when stopping makes the bug vanish.
Prerequisites
- Solid C and kernel module experience
- Ability to build and boot a custom kernel
- gdb fundamentals (breakpoints, stepping, backtrace)
Course outline
Day 1 — Getting attached
- kgdb architecture: what the stub can and cannot do
- kgdb over serial with kgdboc: cables, parameters and timing
- kgdboe over Ethernet and its constraints
- The QEMU gdb stub as a practice target: full control without extra hardware
- gdb client setup with vmlinux: symbols, source paths and the first breakpoint
Day 2 — Working a stopped kernel
- Breakpoints, stepping and backtraces in kernel context
- Inspecting kernel state: the kernel's gdb helper scripts (lx-symbols, lx-dmesg, task and module walkers)
- Debugging loadable modules: resolving module symbols at their load address
- Hardware watchpoints: catching the exact write that corrupts a variable
- Debugging early boot code before the console exists
Day 3 — When stopping is not an option
- dynamic_debug and pr_debug at runtime: enabling sites by file, function, line and format match
- Conditional debug output without recompiling
- What stopping an SMP machine does to timing-sensitive bugs: heisenbugs and kgdb's blind spots
- Choosing between kgdb, tracing and dump analysis per bug class
- Workshop: an injected timing bug pursued with both stopped and running techniques
Hands-on labs
- Lab: bring up kgdb over serial (or the QEMU gdb stub) and single-step through a system call path
- Lab: load the kernel's gdb helper scripts and walk tasks and modules on a live target
- Lab: set a hardware watchpoint on a corrupted variable and catch the instruction that clobbers it
- Lab: debug a deliberately broken module interactively: resolve its symbols and find the faulting line
- Lab: enable individual pr_debug sites at runtime with dynamic_debug and capture only the traffic you need
Capstone project
Debug an injected, timing-sensitive kernel fault end to end. You choose per phase between kgdb and dynamic_debug and must justify each choice: catch the corruption with a watchpoint or conditional breakpoint, then reproduce the surrounding timing with non-stopping debug. Deliverables: the gdb and dmesg transcripts, plus a written record of where interactive debugging helped and where it perturbed the bug away.
What you leave with
- A working kgdb/kgdboe (or QEMU stub) setup you can rebuild
- Fluency with the kernel's lx-* gdb helper scripts
- Hardware watchpoint technique for corruption bugs
- dynamic_debug as the non-stopping alternative
- Defensible judgment about when interactive debugging is the wrong tool
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 25 Oct – 27 Oct 20263 full days | RiyadhIn person · KAFD Conference Centre | 6 of 14 | — | SAR 9,000 | |
| 1 Nov – 3 Nov 20263 full days | Kuwait CityIn person · Al Hamra Tower | 11 of 14 | — | KWD 740 | |
| 1 Nov – 3 Nov 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 6 of 14 | — | OMR 920 | |
| 8 Nov – 15 Nov 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 14 of 20 | US$1,580until 9 Oct | ||
| 9 Nov – 11 Nov 20263 full days | OttawaIn person · Kanata North Tech Park | 11 of 14 | CAD 2,930until 10 Oct | ||
| 9 Nov – 16 Nov 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 3 of 20 | US$1,580until 10 Oct | ||
| 16 Nov – 18 Nov 20263 full days | TorontoIn person · MaRS Discovery District | 6 of 14 | CAD 2,930until 17 Oct | ||
| 16 Nov – 18 Nov 20263 full days | LondonIn person · Shoreditch Works | 11 of 14 | GBP 1,680until 17 Oct | ||
| 16 Nov – 23 Nov 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 8 of 20 | US$1,580until 17 Oct | ||
| 23 Nov – 25 Nov 20263 full days | BerlinIn person · Factory Görlitzer Park | 6 of 14 | EUR 1,990until 24 Oct |
Book a seat, or bring this course to your team
Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.