Symbolic Debuggers

The "oldest" approach to finding out what the internal state of a program is at various stages is to add print statements to the source code. This method is inefficient and ineffective.

A symbolic debugger offers several features for monitoring the internal state of a program. Most debuggers to date offer source-level debugging.