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 can change a program while it is running; some only watch it.