Symbolic Execution History
Mathematica can represent not only data and programs, but also the execution history of programs, as symbolic expressions—which can be displayed, manipulated, and analyzed using the full power of the
Mathematica system.
Trace — generate symbolic execution history filtered with various criteria
TracePrint — print whenever execution-history criteria are satisfied
TraceDialog — enter a dialog whenever execution-history criteria are satisfied
TraceScan — apply any function whenever execution-history criteria are satisfied
Stack — full or filtered symbolic version of the current evaluation stack
Assert — give an assertion to be checked when code is executed