Summary
How awesome! Congratulations on completing this, the final chapter, and this book!
Here, you got an introduction to some remaining kernel debugging approaches – things we perhaps mentioned but hadn't covered elsewhere. We began by mentioning the powerful kdump/crash
framework. Kdump allows capturing the complete kernel image (the trigger typically being a kernel crash/Oops /panic), and the crash
userspace utility helps you (post-mortem) analyze it.
Static analyzers can play a really useful role in discovering potential bugs and security vulnerabilities. Don't ignore them; learn to leverage them!
The importance of code coverage was then delved into for a bit (along with a brief mention of how the kernel's fault-injection framework helps in setting up negative test cases, having control actually going to those pesky and possibly buggy error code paths). We briefly examined the kernel testing framework landscape; you saw that the kernel selftests...