Lessons from 20 years of Debugging C++ Code
summary
Twenty years of C++ debugging distills to concrete steps: gather crash dumps and deploy crash-reporting, make intermittent bugs reproducible with sanitizers and stress tests, use tracepoints/data-breakpoints and disassembly to find where copies or indexing go wrong, and prefer the ideal design but ship the smallest correct patch. Real fixes include replacing a file-lock assumption with proper thread synchronization, detecting 32/64-bit shared-memory layout mismatches with static_assert, catching memory issues with address sanitizer, and always notify under mutex to avoid racey teardown.
AI-written summary · about
chapters (8)
- 0:00Start
- 7:12Learning from a single occurrence?
- 12:45Debugging Process
- 13:30Reproduction
- 22:11Finding the problem
- 29:36Quiz
- 34:39Classify bug
- 38:04Fixing bugs
related talks
44mA Guide to Debugging C++ Code: Practical and Interactive Examples
57mModern Linux C++ debugging tools - under the covers
01h 26mBoost your C/C++ Developer's Debugging Powers with GDB
01h 31mClean(er) Code for Large Scale Legacy Applications
31mRace Conditions - Practical Tools & Techniques for Testing, Preventing, and Debugging C++/C Code
56mIdentifying Common Code Smells
01h 29mModern Linux C++ Debugging Tools - Under the Covers
01h 32mClosing Keynote: C++ Development Tools: Past, Present and Future
