debugging


Also found in: Dictionary, Thesaurus, Medical, Financial, Wikipedia.

debugging

(programming)
The process of attempting to determine the cause of the symptoms of malfunctions in a program or other system. These symptoms may be detected during testing or use by real users.

Symptoms are often caused by factors outside the program, such as misconfiguration of the user's operating system, misunderstanding by the user (see PEBCAK) or failures in other external systems on which the program relies. Some of these are more in the realm of technical support but need to be eliminated. Debugging really starts when it has been established that the program is not behaving according to its specification (which may be formal or informal). It can be done by visual inspection of the source code, debugging by printf or using a debugger. The result may be that the program is actually behaving as specified but that the spec is wrong or the requirements on which it was based were deficient in some way (see BAD).

Once a bug has been identified and a fix applied, the program must be tested to determine whether the bug is really fixed and what effects the changes have had on other aspects of the program's operation (see regression testing).

The term is said to have been coined by Grace Hopper, based on the term "bug".
References in periodicals archive ?
For multi-cores system, the microprocessors may run independently, therefore, the arbitration mechanism is critical for some cases which more than one microprocessors send debugging request to the same target microprocessor.
The internal on-chip arbiter perform the function of observing the debugging request from different master microprocessors and deciding which one is the highest priority master.
com/) is the world's leading provider of debugging and analysis solutions for the multi-core age.
Advanced debugging tools for the hardware developer, including, flash programming register details, command line interface (CLI), and low-level hardware diagnostics that eliminate the need for separate diagnostic tools.
The company's flagship product, TotalView(R), enhances software development productivity by eliminating much of the frustration, delays, and headaches involved in debugging complex, multi-process, multi-thread, and network-distributed applications containing many lines of code.
This is particularly useful when debugging large applications with multiple cores, as engineers typically focus on different parts of their application, concurrently.
The tool provides the debugging features known from the existing GateVision PRO and SpiceVision PRO products to help reduce the complexity of the debug process and make it easier to understand and fix mixed-mode designs.
The SignalTap II embedded logic analyzer is a system-level debugging tool that allows designers to observe signal data via gate-level probes.
EVE offers the fastest verification and most cycles per dollar by combining the best aspects of traditional emulation and rapid prototyping systems into a single, unified environment for ASIC and SoC debugging, and embedded software validation.
The integration leverages ProDesign's new HCD Tool which expands the design debugging functionality of prototyping systems.