Minimal Linux Bootloader debugging story 🐞
Table of contents
Background info on the bootloader
Symptom
Meta: Following Along
Up/Downgrade Versions
New Hypothesis
Debugging with QEMU
Using an older QEMU
Debug symbols
Automation with .gdbinit
Understanding program flow
Wait, this isn’t GDB!
The GDB text-mode user interface (TUI)
The GDB Emacs user interface (M-x gdb)
Debugging the failing loop
Root cause
Speculation
Bonus: reading BIOS source
Mitigation
Conclusion
Appendix: Resources
I maintain two builds of the Linux kernel, a linux/arm64...
Read more at michael.stapelberg.ch