MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Experimental Mathematica debugger

  • To: mathgroup at
  • Subject: [mg96849] Experimental Mathematica debugger
  • From: David Bailey <dave at>
  • Date: Thu, 26 Feb 2009 07:54:29 -0500 (EST)

I have been fairly dissatisfied with the built-in debugger available in
versions 6 and 7, and I would like people to try an experimental new
debugger called DebugTrace. As some of you may recall, I once wrote a
debugger for an earlier version of Mathematica - called M-Debug. That
debugger was based on TraceScan, and was unable to locate Mathematica
expressions within the original source code. It was also very slow when
code was executing to a breakpoint.

DebugTrace works in a new way, identifying program locations using line
numbers which double as breakpoint toggle buttons!

I work as a consultant, and in my experience, projects often start with
a very large notebook, full of unstructured code, which it is necessary 
to understand. Beginners typically write programs in this style - often
without a single user-defined function - and DebugTrace can operate well
on this kind of code, as well as more elegant code and also packages.

DebugTrace is a Mathematica program like any other - i.e. it operates
without any kernel hacks, but this means that it is fairly easy to add 
support for particular pieces of software. For example the debugger 
knows about my Super Widget Package, and when appropriate, it displays 
an extra button that enables the debugger to gain control while a modal 
Java window is being displayed (without closing the window). I imagine 
that this flexibility may be useful in other contexts.

Another revolutionary feature of DebugTrace, is that it comes with 
actual documentation, illustrated with a small example program!

DebugTrace version 0.95 is available free from my website. It will
remain free even after it is polished. If you find specific problems, it
might be best to e-mail me directly with a simple example.

As I say, this project is experimental, and its future development - if
any - depends on the feedback I receive.

David Bailey

  • Prev by Date: Re: Map and functional constructs to replace iterative
  • Next by Date: Re: Eigensystem sometimes returns non-orthonormal
  • Previous by thread: Re: Map and functional constructs to replace iterative
  • Next by thread: Re: Experimental Mathematica debugger