N.B. The MaplePrimes site elided everything past the bullet list, which included more description and links for obtaining the package. It appears as though bullet lists break MaplePrimes, so this is going to be a bit out-of-order.
This new debugger uses a client/server architecture. Communication with Maple is via TCP. This permits remote debugging as well as concurrent debugging of multiple Maple processes. That is useful for comparing different versions of code, or the same code run on different machines.
The package (mdcs, which stands for Maple Debugger Client/Server) is distributed as a zip file with a Maple installer (*.mla file) a README.installer file and a couple of scripts that may be useful for some users. See the README.installer file for instructions on installing this. You will need to install and configure Emacs (get 23.3+).
1.10.3: Updated the 'emacs' option to mdc so that it can be assigned a procedure, which is then used to launch Emacs. Also modified the way the launch_emacs option is used. Unless 'emacs' is a procedure, it now calls system[launch](emacs). For that to work, the (mds) command must be added to the users .emacs file so that Emacs starts the Debugger Server.
1.10.4: Fixed bug in debugger/printf
1.10.6: Added a 'reconnect' option to facilitate reconnecting to a restarted server without restarting Maple. Modified mdc so that positional arguments are processed as procedures to stopat.
1.10.7: Fixes and improves Maple help pages. Addes a TraceLevel export for setting tracing level from inside debugger.
1.11.2: Added options for 'skipping'.
A year or so ago I posted a link to an improved debugger for Maple. That tool was limited in that it only worked on a Linux platform with OpenMaple (it could not be used with Standard Maple). This post describes a redesign of that tool that can be installed on Windows and Linux (and presumably the Mac, though it has not been tested there). As before, it uses Emacs as the debugger interface, so you will have to install Emacs on your machine to use this. It works with all Maple interfaces (Standard GUI, tty, classic, MapleSim) and has been tested with Maple 12 through 15. For those who would like an improved Maple debugger and can cope with the temporary pain of installing and configuring Emacs, this really is the tool to use. It has significantly improved my ability to debug Maple procedures. Features include
- The procedure being debugged is a displayed in a window. Executing statements moves the cursor through the window.
- The output of each executed statement is displayed in a separate window.
- Inspecting the stack inserts hyperlinks that can be used to open previously called procedures for inspection and insertion of breakpoints
- All commands are bound to simple keystrokes
- Expressions can be evaluated and displayed in a useful format
- Debugged procedures can be live-patched, that is, modifications can be made by editting them in the buffer
- Builtin procedures can be instrumented (useful for inspecting their arguments)
- A tracing feature permits rapidly tracing through debugged code
- A skip feature permits jumping to the location in code where an intermediate expression first appears