Nobody Can Program Correctly - Lessons From 20 Years of Debugging C++ Code
summary
Twenty years of real bug hunts condense to concrete moves: increase reports with crash reporting backends (Google crashpad), reproduce with stress tests and the sanitizers like address sanitizer thread sanitizer and UB sanitizer, inspect timing and file-lock assumptions that break with multithreaded access, find root causes with git bisect and reverse debuggers, fix by adding asserts in release and replacing fragile patterns (e.g. the shared-memory size_t mismatch between 32/64-bit), then write targeted tests and safer abstractions.
AI-written summary · about
chapters (22)
- 0:00Introduction
- 0:51What is a bug
- 2:01How do you notice bugs
- 4:22Implement strict error checking
- 6:45Bug database
- 7:59One in a million
- 9:50First practical example
- 12:59The debugging process
- 13:50Reproducibility
- 18:05desktop environments
- 19:51error reporting
- 21:00second quiz
- 24:45Finding the real problem
- 25:43Tracing
- 29:53Binary Search
- 32:00Debugging Techniques
- 33:05Debugging Tools
- 34:28Passive Assembly Skills
- 37:34Debugging Workflow
- 40:54Classification
- 42:04Big Problems
- 44:46Small Problems
related talks
01h 01mBack to Basics: Debugging in Cpp
01h 05mBack To Basics: Debugging Techniques
01h 01mBack to Basics: Debugging and Testing in C++ Software Development
59mHardening Your Code
52mFantastic C++ Bugs and How to Test Them
01h 04mThe Most Popular Bugs and Code Smells in C and C++
56mWill Your C++ Program Still Be Correct Next Year?
01h 01mBack to Basics: Test-driven Development
