[Next] [Previous] [Up] [Top] [Contents]

New Approaches to Software Debugging

Principal Investigator: Eugene H. Spafford

Research Assistants: C. Viravan

Sponsors: NSF, SERC

Despite the variety of software development tools and techniques, and despite the best efforts of software engineers, software is frequently produced that contains faults (bugs). Even if it were possible to produce fault-free code from this time hence, the huge quantity of existing code to be maintained and reused would require fault detection and elimination technology.

The debugging process is usually time-consuming and labor-intensive, and relies on tools and methodologies little changed from the earliest debuggers developed 20 and 30 years ago. Some studies have shown that 50% or more of the total cost of software development may be attributed to testing and debugging.

The long term goal of our research is to investigate more effective, general methods of debugging complicated software systems. We are investigating new approaches that will enhance the state of debugging technology, and that may be applied to a wide range of software systems.

Our research is currently directed at one of the most difficult tasks associated with debugging: understanding the fault leading to an observed failure. We are exploring automating methods of using existing information--information not currently used effectively (or at all) in other debuggers--to aid the debugger. That information may be present in the mapping of specifications to code, in the behavior of the code when executed against test data, in data produced by the compiler, and in the performance of previous debugging steps. Research is now directed towards the development of an active critic system as an advisor during debugging sessions, and to application of our techniques to other programming paradigms.

CS Annual Report - 19 APR 1996

[Next] [Previous] [Up] [Top] [Contents]