Symbolic Execution History
The Wolfram Language 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 Wolfram Language.
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
StackBegin ▪ StackInhibit ▪ StackComplete
Assert — give an assertion to be checked when code is executed