Computers now have beautiful color screens and fast graphics. Let's use those graphics to help the programmer visualize the behavior of the program. We now understand user interfaces and the programming process much better than we used to. Let's use some of that understanding to help programmers with the cognitive task of relating the static description embodied in the code to the dynamic behavior of the program. Some people express despair at the possibility of significant improvements to the debugging process.
Good tools can make a seemingly intransigent bug appear obvious.
This can save significant effort, even for the most experienced of programmers. Others put their faith in formal techniques such as program verification, which they claim will virtually eliminate the need for debugging. We don't think so. Not only is total elimination of bugs unrealistic, but software is continually evolving. Debugging tools are just as necessary for incremental evolution of software as they are for finding errors.