Debugger
debuggersdebuggingDebugger front-enddebugsymbolic debuggerReverse debuggingdebug datadebug informationdebugging informationdebugging program
A debugger or debugging tool is a computer program that is used to test and debug other programs (the "target" program).wikipedia

363 Related Articles
Software testing
beta testingtestingbeta
A debugger or debugging tool is a computer program that is used to test and debug other programs (the "target" program).
Typical techniques for these are either using stubs/drivers or execution from a debugger environment.


Debugging
debugdebuggedanti-debugging
A debugger or debugging tool is a computer program that is used to test and debug other programs (the "target" program).
The debugging skill of the programmer can be a major factor in the ability to debug a problem, but the difficulty of software debugging varies greatly with the complexity of the system, and also depends, to some extent, on the programming language(s) used and the available tools, such as debuggers.


Program animation
stepsteppingprogram stepping
Debuggers also offer more sophisticated functions such as running a program step by step (single-stepping or program animation), stopping (breaking) (pausing the program to examine the current state) at some event or specified instruction by means of a breakpoint, and tracking the values of variables.
Nearly all modern IDEs and debuggers support this mode of execution.

Instruction set simulator
Instruction set simulationusage of particular instructionsinstruction accurate
The code to be examined might alternatively be running on an instruction set simulator (ISS), a technique that allows great power in its ability to halt when specific conditions are encountered, but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor.
An ISS is often provided with (or is itself) a debugger in order for a software engineer/programmer to debug the program prior to obtaining target hardware.
Dbx (debugger)
dbx
Most mainstream debugging engines, such as gdb and dbx, provide console-based command line interfaces.
dbx is a source-level debugger found primarily on Solaris, AIX, IRIX, Tru64 UNIX, Linux and BSD operating systems.
Integrated development environment
IDEIDEsdevelopment environment
When the program "traps" or reaches a preset condition, the debugger typically shows the location in the original code if it is a source-level debugger or symbolic debugger, commonly now seen in integrated development environments.
An IDE normally consists of at least a source code editor, build automation tools, and a debugger.


Software bug
bugsbugsoftware bugs
A "trap" occurs when the program cannot normally continue because of a programming bug or invalid data.
Programs known as debuggers help programmers locate bugs by executing code line by line, watching variable values, and other features to observe program behavior.


Record and replay debugging
record and replay program execution
"Record and replay debugging", also known as "software flight recording" or "program execution recording" captures application state changes and stores them to disk as each instruction in a program executes.
Record and replay debugging is the process of recording the execution of a software program so that it may be played back within a debugger to help diagnose and resolve defects.
Software cracking
crackingcrackscrack
The same functionality which makes a debugger useful for eliminating bugs allows it to be used as a software cracking tool to evade copy protection, digital rights management, and other software protection features.
This is accomplished by reverse engineering the compiled program code using a debugger such as SoftICE, x64dbg, OllyDbg, GDB, or MacsBug until the software cracker reaches the subroutine that contains the primary method of protecting the software (or by disassembling an executable file with a program such as IDA).
Disassembler
disassemblydisassemblingdisassembled
If it is a low-level debugger or a machine-language debugger it shows the line in the disassembly (unless it also has online access to the original source code and can display the appropriate section of code from the assembly or compilation).
Any interactive debugger will include some way of viewing the disassembly of the program being debugged.
Trap (computing)
trapfaulttraps
A "trap" occurs when the program cannot normally continue because of a programming bug or invalid data.
In some usages, the term trap refers specifically to an interrupt intended to initiate a context switch to a monitor program or debugger.
Microsoft Visual Studio
Visual StudioVisual Studio 2005Visual Studio 2008
Microsoft Visual Studio (2010 Ultimate edition, 2012 Ultimate, 2013 Ultimate, and 2015 Enterprise edition) offers IntelliTrace reverse debugging for C#, Visual Basic .NET, and some other languages, but not C++.
Visual Studio includes a debugger that works both as a source-level debugger and as a machine-level debugger.

Trap flag
T
If such a flag is available, debuggers can use it to step through the execution of a computer program.
Breakpoint
breakpointswatchesinserting print statements as diagnostics
Debuggers also offer more sophisticated functions such as running a program step by step (single-stepping or program animation), stopping (breaking) (pausing the program to examine the current state) at some event or specified instruction by means of a breakpoint, and tracking the values of variables.

ARM architecture
ARMARMv7ARMv8-A
Arm Holdings provides to all licensees an integratable hardware description of the ARM core as well as complete software development toolset (compiler, debugger, software development kit) and the right to sell manufactured silicon containing the ARM CPU.









Arm DDT
Allinea DDTAllinea Distributed Debugging ToolAllinea Software
Arm DDT is a commercial C, C++ and Fortran 90 debugger produced by Allinea Software now part of Arm of Warwick, United Kingdom.
GNU Debugger
gdbGDB-TkGNU debugger (GDB)
Most mainstream debugging engines, such as gdb and dbx, provide console-based command line interfaces.
The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go, and partially others.

Microsoft Visual Studio Debugger
Visual Studio DebuggerMicrosoft Visual StudioThe integrated debugger
The Microsoft Visual Studio Debugger is a debugger that ships along with all versions of Microsoft Visual Studio.
WinDbg
Debugging Tools for WindowsWinDbg or KD
WinDbg is a multipurpose debugger for the Microsoft Windows computer operating system, distributed by Microsoft.
Dynamic debugging technique
DDTthe DDT debugger
Dynamic Debugging Technique, or DDT, was the name of several debugger programs originally developed for DEC hardware, initially known as DEC Debugging Tape because it was distributed on paper tape.
On-line Debugging Tool
ODTOctal Debugging Technique
On-line Debugging Tool (ODT) was used to describe several debugger programs developed for Digital Equipment Corporation (DEC) hardware.
Radare2
Radare2 has a built-in debugger, that is lower-level than the classic GDB.

Page fault
invalid page faultpage faultsmemory exception
Recent versions of Windows often report such problems by simply stating something like "this program must close" (an experienced user or programmer with access to a debugger can still retrieve detailed information).