15.1 Review the methods


15.1 Review the methods

15.1.1 Review now

Now is a good time to evaluate whether you have learned anything from reading this book and what you want to put into practice. The tables in this section list all the techniques described in this book. If you don’t know how to use a technique, go back and reread the corresponding section.

The columns give you space to decide how to apply the technique. If you’re already using the technique, check the first column. If you would like to use the technique at the next opportunity, check the second column. If you would like to use the technique at some future time, check the third column. Put more checks in the third column than the second one. You can’t use everything first. If you don’t think the technique is applicable to your work, check the last column.

Table 15.1: Debugging Techniques, Part 1

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

Debugging Techniques, Part 2

Technique

Already Using

Use Soon

Use Later

No Plans

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

Debugging Techniques, Part 3

Technique

Already Using

Use Soon

Use Later

No Plans

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

15.1.2 Review later

Keep the list near you when you’re doing debugging work. When you’re working on a difficult bug, look over the list and see if any of the techniques might help you. If you use one of the techniques for the first time, write the date in the table.




Debugging by Thinking. A Multidisciplinary Approach
Debugging by Thinking: A Multidisciplinary Approach (HP Technologies)
ISBN: 1555583075
EAN: 2147483647
Year: 2002
Pages: 172

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net