Debugging
Der Begriff Bug wurde ursprünglich von der Computerpionierin Grace Hopper geprägt. Im heutigen Deutsch ist es üblich, mit dem Begriff Bug einen Fehler in einem Computerprogramm zu bezeichnen.
Als debuggen wird das Auffinden, Diagnostizieren und Eliminieren von Fehlern in Hardware und heutzutage vor allem auch in Software bezeichnet.
Ein Werkzeug zur Fehlerbereinigung von Software nennt sich Debugger. Der Debugger ermöglicht in der Regel eine Ablaufverfolgung des zu untersuchenden Programmes in einzelnen Schritten oder zwischen definierten Haltepunkten. Ein Debugger ist oft Bestandteil einer Programm-Entwicklungsumgebung (auch integrierte Entwicklungsumgebung (bzw. IDE) genannt).
Als buggy wird in der Regel eine Soft- oder Hardware bezeichnet, die Fehler enthält und somit nicht ausreichend debuggt wurde.
Zur Fehlersuche verwendete Werkzeuge
- Hardware:
- JTAG
- Logic-Analyzer
- ICE - In-Circuit-Emulator
- Software (Debugger):
- debug - ein DOS-Tool
- gdb - der GNU Debugger, ein Unix-Tool
- ddd - ein graphisches Frontend zum gdb
- ltrace - zeigt dynamische Bibliotheksaufrufe an
- strace (Linux), truss (Solaris) - zeigt Systemaufrufe an
- valgrind - zum Debuggen und Profilen von x86-Linux Programmen
- SoftICE - Leistungsfähiger Low-Level Debugger für x86 Systeme
- IDA - sehr guter Disassembler für viele Rechner-Architekturen - enthält auch einen Debugger für die X86-Architektur.
- OllyDbg - ein weiterer guter Debugger mit schöner GUI. Die Grundfunktionen sind einfach zu bedienen.
- W32DASM - ein weiterer guter Debugger und Disassembler.
- Diverse Source-Level-Debugger, in der Regel Teil einer Integrierten Entwicklungsumgebung.