Debuggers offer advanced functions such as:
- Running a program step by step (single-stepping),
- Stopping (breaking) (pausing the program to examine the current state) at some kind of event by means of breakpoint (a place for stopping or pausing in a program),
- Tracking; which means following, the values of some variables,
- Some debuggers have the ability to modify the state of the program while it is running, rather than watching it only.