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