DEBUG - Maple Programming Help

DEBUG

The Maple debugger breakpoint function

 Calling Sequence DEBUG(arg1, arg2,...)

Parameters

 argN - (optional) any expression

Description

 • The DEBUG function has the effect of a breakpoint in Maple code. When the DEBUG function is executed, execution stops before the next statement executed, and the debugger function is invoked. If the debugger function returns anything other than NULL, the returned value is evaluated, and the debugger function is reinvoked.
 • The stopat function (and the stopat debugger command) set breakpoints by inserting a call to the DEBUG function before the statement at which the breakpoint is set. Such breakpoints can be removed using the unstopat function (or the unstopat debugger command).
 • A breakpoint can be inserted explicitly into the source code of a Maple procedure by inserting a call to the DEBUG function. Such breakpoints cannot be removed using the unstopat function (or the unstopat debugger command).
 • If the DEBUG function is passed any parameters, they are passed on to the debugger function for display when it is invoked. If no parameters are passed, the result of the previous computation is passed to the debugger function instead.
 • The DEBUG function returns NULL so as not to affect %, %%, and %%%.  Therefore, inserting it as the last statement of a procedure will hide the return value of the procedure. It is not possible to use stopat to set a breakpoint after the last statement in a procedure.

 • The DEBUG command is thread-safe as of Maple 15.
 > f := proc(x,y) local a;     a := x^2; DEBUG(); a := y^2; DEBUG(Hello); a := (x+y)^2 end proc:
 > $f\left(2,3\right)$
 ${25}$ (1)