Summary
Good going on completing this very hands-on chapter (I really hope you went through it in a hands-on manner)!
We began with a brief conceptual understanding of how KGDB works; it's down to GDB employing a client/server architecture (the target kernel imbibes the GDB server component, with the remote GDB client running on the host system). Next, we set up and tested a full-fledged ARM32 target (via the SEALS project and QEMU). We used it as the target system when demonstrating how to use KGDB to debug in-tree kernel code, right from early boot.
We then moved on to understanding how you can use KGDB to debug kernel modules, often what driver developers (and similar) have to do on projects and products. This time we demonstrated it using a QEMU-emulated x86_64 as the target system.
We rounded off this chapter with a few useful [K]GDB tips and tricks!
Admittedly, getting KGDB set up for remote debugging on actual hardware can be a bit tedious! Ensuring that the...