====== Debugging ====== Especially in the early stages of development, debugging an operating system can be pretty challenging. In this article, we will look at a few debugging techniques. ===== Logging ===== Every OS developer will begin his journey by writing something like //"Hello world"// to the screen. Printing text on the screen is one of the most basic debugging techniques; seeing a specific message can tell us whether that piece of code has been executed or not. ==== Printing formatted text ==== TODO: How to implement printf. ==== Designing a logging system ==== TODO ==== Sending text to the host ==== TODO ==== Serial output ==== TODO ===== Debuggers ===== ==== Linker generated map files ==== ==== Disassembling ==== ==== Debugging symbols ==== ==== GDB + Qemu ==== ==== Bochs ==== ==== VirtualBox (?) ==== ==== VMWare (?) ==== ===== Other debugging hacks ===== ==== Infinite loops ==== ===== See also ===== ===== References =====