===== Debugger ===== 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 [[Disassembler|disassemble]] code * the ability to cross-reference and display source code and address [[Symbol|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 [[Register|registers]] The GNU debugger is named "gdb" and has a command-line interface. Various graphical front-ends are available. ===== Resources ===== * [[https://www.gnu.org/software/gdb/documentation/|GDB Documentation]]