A debugger is a tool used to analyze running code.
Although debugging tools are available for interpreted and bytestream languages, the term debugger is often used to describe a tool that can analyze object code.
Typical features of a debugger include:
- the ability to disassemble code
- the ability to cross-reference and display source code and address symbols (for functions and variables)
- the ability to execute single instructions or lines of code (single-step)
- the ability to stop execution at a requested location in the program (breakpoint) or when a variable changes value (watchpoint)
- the ability to trap and examine faults (such as a segmentation fault)
- the ability to examine variables and registers
The GNU debugger is named "gdb" and has a command-line interface. Various graphical front-ends are available.