Debugging
Debugging is a methodical process of finding and reducing the number of bugs in a computer program and/or a piece of electronic hardware to make it work better, or at all. The more/untidier connections there exist between various subsystems, the harder the debugging tends to be.
Debugging is, in general, a cumbersome and tiring task. The difficulty of software debugging varies greatly with the programming language used and the available tools, such as debuggers. Debuggers are software tools which enable the programmer to monitor the execution of a program, stop it, re-start it, run it in slow motion, change values in memory and even, in some cases, go back in time.
Generally, high-level programming languages, such as Java, make debugging easier, because they have features such as exception handling that make real sources of erratic behaviour easier to spot. In lower-level programming languages such as C or assembly, bugs may cause silent problems such as memory corruption, and it is often difficult to see where the initial problem happened; in those cases, sophisticated debugging tools may be needed.
For debugging electronic hardware (e.g., computer hardware) as well as low-level software (eg. BIOSes, device drivers) and firmware, instruments such as oscilloscopes, logic analyzers or in-circuit emulators (ICEs) are often used, alone or in combination. An ICE may perform many of the typical software debugger's tasks on low-level software and firmware.
See also
References
- David J. Agans: Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems, AMACOM, ISBN 0814471684
- Matthew A. Telles, Yuan Hsieh, Matt Telles: The Science of Debugging, The Coriolis Group, ISBN 1576109178
- Robert Metzger: Debugging by Thinking : A Multidisciplinary Approach, Digital Press, ISBN 1555583075
- John Robbins: Debugging Applications, Microsoft Press, ISBN 0735608865
- Ann R. Ford, Toby J. Teorey: Practical Debugging in C++, Prentice Hall , ISBN 0130653942
- Bill Blunden: Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code, APress, ISBN 1590592344
- Frederick Phillips Brooks: The Mythical Man-Month: Essays on Software Engineering, Pearson Addison Wesley, ISBN 0201006502
External links
- Debugging Backwards in Time - Omniscient Debugging
- Citations from CiteSeer