Tag
debugging
- Oct 8, 2026 Stack Unwinding in the Kernel Without Frame Pointers Walking a call stack whose compiler optimised away the frame pointer, the unwind tables that replace it, and why unwinding from an interrupt frame needs a different entry point. operating systems
- Mar 22, 2026 Remote Debugging Through gdbserver and a Target Sysroot The debugger runs on one machine and the process on another, with only a byte stream between them. Which memory reads the host performs, why the target libraries must exist locally, and what breaks once addresses stop matching. systems programming
- Feb 25, 2026 Early Console Output Before Drivers Exist How a kernel prints messages before it has a driver for any display or serial device, why the framebuffer left by firmware is the usual answer, and what early output costs when it is a polling loop. operating systems
- Jan 19, 2024 Deterministic Replay: Recording a Thread Schedule and Playing It Back What must be captured to reproduce an execution exactly, why recording the interleaving is not enough, and how replay trades observability for the ability to repeat a failure. systems programming
- Feb 24, 2023 Line Tables, Breakpoints, and Single Stepping in an Interpreter How a debugger maps a bytecode offset back to a source line, how breakpoints are placed without corrupting the code, and what stepping costs per instruction. language runtimes