The DebugTrace package is an attempt to design a better alternative to the built-in debugger .

DebugTrace uses no special hooks into Mathematica, instead it modifies the source code as it is presented to the kernel, to add the necessary hooks to allow the debugger to operate. This process imposes much less run-time overhead than TraceScan (used by M-Debug).