Abstract
Debugging Rust code can feel like navigating uncharted waters — especially when the tools were originally built for C and C++. In this talk, we’ll explore the key components of the Rust debugging experience across platforms, from compiler-generated debug info (DWARF/PDB) to console-based and GUI-based debuggers like GDB, LLDB, VSCode/CodeLLDB, WinDBG, and RustRover. We’ll break down what goes into debug info, what gets lost in translation, and how that affects your ability to introspect values and types. You’ll learn how to effectively use breakpoints, inspect variables, explore the call stack, and even modify state at runtime. We’ll cover the role of pretty-printers and the Natvis framework in making Rust values human-readable. We’ll try to see why interactive debugging often beats print-style debugging. Finally, we’ll tackle common troubleshooting scenarios — like vanishing variables and stubborn breakpoints — to help you make sense of what the debugger is really telling you.
Whether you’re a seasoned Rustacean or just stepping into systems programming, this talk will sharpen your debugging instincts and demystify the tools at your fingertips.