There are numerous implementations of the Scheme language available. While some of them have extensive debugging capabilities, many small implementations have only limited support for it. Psd provides source level debugging as an ``add on'', relying only on features described in the Revised Report on the Algorithmic Language Scheme . Psd does not use the macro proposal of the report, so it should work with Revised Scheme implementations, also.
Psd works by transforming the original program into an operationally equivalent program (modulo the debugging capabilities), that allows the user to examine and change variables, set breakpoints, and single step the evaluation process. To a calling procedure, a debugged procedure behaves exactly like the original. This allows mixing debugged and non-debugged code.
When a program is debugged with Psd, its source code is first given to the instrumenting part of Psd. The instrumentation part writes an instrumented version of the program to a file, which is then loaded into the Scheme environment. When a procedure in the program is invoked, it behaves as if it was executed under a conventional debugger.