Debugging the debug process
What is the best way to debug hard-to-repro bugs?
· The Program
· The Bug
· The Debug Process
∘ Gathered data
∘ Understood the system
∘ Automated the repro scenarios
∘ Analyzed the findings
· Fixes
· Post Mortem
· Conclusion
· References
Imagine that you are just given the task of debugging a hard-to-repro bug. What would you do to solve the problem?
“To repro” is short to “to reproduce” and “to reproduce a bug” means “to recreate the scenario that shows the bug.” So, a “hard-to-repro” bug refers to a nasty bug that surfaces very rarely.
You might ask if it happens so rarely, why do you even bother to debug and fix this type of bug when there are other important tasks to do. A rare bug does not mean that it is not important. In fact, even if it happens rarely, it might have a significant impact on the performance and productivity of the user.
Recently, I had a chance to tackle one such issue and wanted to share my experience.