debugging
9 indispensable rules for finding even the most elusive hardware and software problem
UNDERSTAND THE SYSTEM
read the manual
read everything in depths
know the fundamentals
know the road map
understand your tools
look up the details
MAKE IT FAIL
do it again
start at the beginning
stimulate the failure
but don't stimulate the failure
find the uncontrolled condition that makes it intermittent
record everything and find the signature of intermittent bugs
don't trust statistics too much
know that "that" can happen
never throw away a debugging tool
QUIT THINKING AND LOOK
see the failure
see the details
build instrumentation in
add instrumentation on
don't be afraid to dive in
watch out for heisenburg
guess only to focus the search
DIVIDE AND CONQUER
narrow the search with successive approximation
get the range
determine which side of the bug you are on
use easy-to-spot test patterns
start with the bad
fix the bugs you know about
fix the noise first
CHANGE ONE THING AT A TIME
isolate the key factor
grab the brass bar with both hands
change one test at a time
compare it with a good one
determine what you changed since the last time it worked
KEEP AN AUDIT TRAIL
write down what you did, in what order, and what happened as a result
understand any detail could be the important one
correlate events
understand audit trails for design are also good for testing
write it down
CHECK THE PLUG
question your assumptions
start at the beginning
test the tool
GET A FRESH VIEW
ask for fresh insights
tap expertise
listen to the voice of experience
know that help is all around you
don't be proud
report symptoms, not theories
realize that you don't have to be sure
IF YOU DIDN'T FIX IT, IT AIN'T FIXED
check that it's really fixed
check that it's really your fix that fixed it
know that it never just goes away by itself
fix the cause
fix the process
Last updated