Generated by GPT-5-mini| DEBUG | |
|---|---|
| Name | DEBUG |
| Developer | Various |
| Released | 1970s |
| Operating system | MS-DOS, CP/M, various embedded RTOS , Unix |
| Genre | Diagnostic tool |
| License | Proprietary and open-source variants |
DEBUG
DEBUG is a term applied to a family of diagnostic programs and practices used for finding and correcting faults in software, firmware, and hardware systems. It has been implemented as command-line utilities, integrated development environment features, and hardware monitors, employed across platforms such as MS-DOS, CP/M, Unix, Microsoft Windows NT, and numerous embedded systems used by NASA, Boeing, and military contractors. Debug utilities and the broader practice intersect with toolchains from vendors like Microsoft Corporation, IBM, Intel, and communities around GNU Project and Free Software Foundation.
The label derives from the colloquial English verb "debug", popularized in technical circles during the mid-20th century, and associated with projects at Massachusetts Institute of Technology and the Harvard Mark II team. Early published usage entered engineering literature alongside work at Bell Labs, IBM, and RAND Corporation, and the term spread with commercial systems such as DEC PDP-11 and IBM System/360. In practice, the word names both discrete utilities (e.g., a DOS-era DEBUG command supplied with MS-DOS and PC DOS) and the general activity performed by practitioners at organizations like Bell Telephone Laboratories, Digital Equipment Corporation, Microsoft Corporation, and open-source projects such as Linux Kernel development.
Debug tools and methods are categorized by target and level: source-level debuggers, binary-level debuggers, in-circuit emulators, and logic analyzers. Source-level debuggers (used with languages supported by GCC, Clang, Microsoft Visual C++) map executable code back to files and line numbers. Binary-level debuggers operate on machine code produced for architectures like x86 architecture, ARM architecture, and MIPS architecture. In-circuit emulators and hardware monitors are used for systems developed by firms such as Texas Instruments, Atmel, and NVIDIA. Methods include single-stepping, breakpoint insertion, register inspection, core-dump analysis, and tracing frameworks pioneered in projects at Sun Microsystems and Silicon Graphics.
Notable debugger tools include command-line and graphical offerings from multiple vendors: GNU Debugger (GDB) from the Free Software Foundation, Microsoft Visual Studio debugger from Microsoft Corporation, LLDB from the LLVM Project, and older utilities like the DEBUG command bundled with MS-DOS and PC DOS. Commercial integrated solutions appear in Wind River products, IAR Systems toolchain, and vendor suites by Intel and Arm Holdings. Hardware-oriented tools include logic analyzers by Tektronix and Agilent Technologies (now Keysight Technologies), in-circuit emulators from Lauterbach, and JTAG debuggers standardized by the Joint Test Action Group. Continuous-integration environments such as Jenkins and Travis CI often integrate headless or record-and-replay debugging capabilities.
The debugging process commonly follows reproducible-test, isolate, instrument, diagnose, and correct phases used at organizations like Google, Facebook, and Amazon (company). Reproducible-test relies on test harnesses from frameworks such as JUnit, pytest, and Google Test to capture failures before instrumentation. Isolation uses techniques like delta debugging and bisecting with tools such as git's bisect command developed by contributors in the Linux Kernel community. Instrumentation includes logging frameworks (e.g., syslog, Log4j), performance profilers like perf (Linux tool), and sampling tools developed for Android and iOS development by Google and Apple Inc.. Remote debugging techniques are used in cloud providers such as Amazon Web Services, Google Cloud Platform, and Microsoft Azure with secure protocols and container-aware tooling (e.g., Docker, Kubernetes). Formal methods and model checking from NASA projects and academic labs at Carnegie Mellon University complement empirical debugging by proving properties of critical systems.
Hardware and firmware debugging addresses faults in microcontrollers, field-programmable gate arrays, and system-on-chip products by companies like Xilinx and Broadcom. Techniques include JTAG boundary-scan, in-system programming, and on-chip debug modules present in ARM's CoreSight and Intel's DCI. Oscilloscopes and logic analyzers from Tektronix and Keysight Technologies inspect electrical signals while bus analyzers track protocols such as I2C, SPI, PCI Express, and USB. Firmware debugging uses emulators integrated with toolchains from ARM Ltd., Microchip Technology, and STMicroelectronics, and leverages vendor-specific monitors and remote debugging facilities in products used by Lockheed Martin and automotive suppliers like Bosch.
Early milestones include problem-solving efforts on the Harvard Mark II and cultural anecdotes from engineers at MIT and Bell Labs. The publication of symbolic debuggers for machines like the DEC PDP-11 and the release of the DEBUG command in PC DOS 1.0 shaped developer expectations. The rise of open-source tools—GDB in the GNU toolchain and LLVM/LLDB in compiler research at University of Illinois at Urbana–Champaign—shifted the ecosystem toward extensible, cross-platform debug infrastructures. Hardware debugging advanced with the formation of the Joint Test Action Group standardizing JTAG, while commercial debuggers integrated GUI experiences through products like Borland Delphi and Microsoft Visual Studio. Modern milestones include adoption of record-and-replay debuggers by companies such as Mozilla and Uber, and advancements in observability and distributed tracing promoted by projects like OpenTracing and OpenTelemetry.
Category:Debugging tools