Debugger
A debugger is a software tool that helps programmers test and debug code by allowing program execution to be controlled and observed. It typically enables starting and stopping programs, pausing at points of interest, inspecting and modifying variables, memory, call stacks, and registers, and evaluating expressions during execution. It supports identifying bugs such as logic errors, runtime exceptions, and resource leaks. It can attach to running processes or launch them under controlled conditions.
Typical features include breakpoints, watches, stepping controls (step into, step over, step out), tracing and logging,
Types and approaches: source-level debuggers map runtime state to source lines; machine-level debuggers operate on binaries;
In practice, debuggers are used to locate runtime errors, understand program flow, and verify fixes. Effective