LOL in my 4th year Advanced Operating Systems Concepts course we wrote a toy x86 OS from scratch. We obviously didn't have to make our own hardware, but uhhhh I definitely added a bunch of printfs inside QEMU to dump out CPU states when we couldn't figure out the chain of events that led to hard faults.
On the other side... have also definitely used a pair of LEDs to try to debug an RTOS on a microcontroller with no JTAG access...
On the other side... have also definitely used a pair of LEDs to try to debug an RTOS on a microcontroller with no JTAG access...