Debugging Method Checklist

Technique Already Using Use Soon Use Later No Plans
Use cross-disciplinary knowledge



Focus on facts



Pay attention to unusual details



Gather facts before hypothesizing



State the facts to someone else



Start by observing



Don't guess



Exclude alternative explanations



Reason in both directions



Watch for red herrings



Use alibis as clues



Eliminate impossible causes



Exercise curiosity



Reason based on facts



Enumerate possibilities



Use the power of logic



Use a system for organizing facts



Exercise caution when searching



Use gestalt understanding



Show how something could be done



Don't look for it



It isn't lost you are



Remember the three c's



It's where it's supposed to be



Look for domestic drift



You're looking right at it



The camouflage effect



Think back



Look once, look well



The eureka zone



Tail thyself



It wasn't you



Use a binary search strategy



Use a greedy search strategy



Use a breadth-first search strategy



Use a depth-first search strategy



Use a program slice strategy



Use a deductive-analysis strategy



Use a inductive-analysis strategy



Stabilize the program



Create a test case



Reduce the required input



Categorize the problem



Describe the problem



Explain the problem to someone else



Recall a similar problem



Draw a diagram



Choose a hypothesis from historical data



Read the code



Write unit tests



Display variable values



Display execution messages



Display procedure arguments



Generate a flow trace



Generate a variable snapshot



Generate a memory dump



Force a variable value



Assert assumptions



Check data structures



Display data structures



Use runtime subscript checking



Use runtime stack checking



Use runtime heap checking



Initialize global variables



Initialize local variables



Change storage class



Use a different compiler



Compile to an intermediate level



Execute on a different platform