Remove a breakpoint.
dbclear fun dbclear fun line dbclear('fun', line) dbclear
dbclear fun removes all breakpoints in function fun. dbclear fun line or dbclear('fun',line) removes the breakpoint in function fun at line number line.
Without argument, dbclear removes all breakpoints.
When execution has been suspended by a breakpoint or dbhalt, it can be resumed from the command-line interface with dbcont.
In a function, dbhalt suspends normal execution as if a breakpoint had been reached. Commands dbstep, dbcont and dbquit can then be used from the command line to resume or abort execution.
Abort suspended execution.
When execution has been suspended by a breakpoint or dbhalt, it can be aborted completely from the command-line interface with dbquit.
Chain of function calls.
dbstack s = dbstack dbstack all s = dbstack('all')
dbstack displays the chain of function calls which lead to the current execution point, with the line number where the call to the subfunction is made. It can be executed in a function or from the command-line interface when execution is suspended with a breakpoint or dbhalt.
dbstack all (or dbstack('all')) displays the whole stack of function calls. For instance, if two executions are successively suspended at breakpoints, dbstack displays only the second chain of function calls, while dbstack all displays all functions.
With an output argument, dbstack returns the result as a structure array. Field name contains the function name (or class and method names), and field line the line number. Note that you cannot assign the result of dbstack to a new variable in suspended mode.
use stat dbstop prctile iqr(rand(1,1000)) <prctile:45> if nargin < 3 dbstack stat/prctile;45 stat/iqr;69
Display list of breakpoints.
dbstatus dbstatus fun
dbstatus displays the list of all breakpoints. dbstatus fun displays the list of breakpoints in function fun.
Execute a line of instructions.
dbstep dbstep in dbstep out
When normal execution is suspended after a breakpoint set with dbstop or the execution of function dbhalt, dbstep, issued from the command line, executes the next line of the suspended function. If the line is the last one of the function, execution resumes in the calling function.
dbstep in has the same effect as dbstep, except if a subfunction is called. In this case, execution is suspended at the beginning of the subfunction.
dbstep out resumes execution in the current function and suspends it in the calling function.
Load library stdlib and put a breakpoint at the beginning of function hankel:
use stdlib dbstop hankel
Start execution of function hankel until the breakpoint is reached (the next line to be executed is displayed):
hankel(1:3,3:8) <hankel:21> c = c(:);
When the execution is suspended, any function can be called. Local variables of the function can be accessed and changed; but no new variable can be created. Here, the list of variables and the value of c are displayed:
info v M (not defined) c (1x3) r (1x6) m (not defined) n (not defined) ix (not defined) M1 (not defined) c c = 1 2 3
Display the stack of function calls:
Execute next line (typing Return with an empty command has the same effect as typing dbstep):
dbstep <hankel:22> m = length(c);
Continue until the end; then normal execution is resumed:
dbcont ans = 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8
Display breakpoint and clear it:
dbstatus stdlib/hankel;0 dbclear
Set a breakpoint.
dbstop fun dbstop fun line dbstop('fun', line)
dbstop fun sets a breakpoint at the beginning of function fun. dbstop fun line or dbstop('fun',line) sets a breakpoint in function fun at line line.
When LME executes a line where a breakpoint has been set, it suspends execution and returns to the command-line interface. The user can inspect or change variables, executes expressions or other functions, continue execution with dbstep or dbcont, or abort execution with dbquit.
use stdlib dbstop cart2pol dbstatus stdlib/cart2pol;0 dbclear cart2pol
Display source code with line numbers, breakpoints, and current execution point.
dbtype fun dbtype dbtype('fun', fd=fd) src = dbtype('fun')
dbtype fun displays the source code of function fun with line numbers, breakpoints, and the position where execution is suspended (if it is in fun). Without argument, dbtype displays the function which is suspended.
dbtype can be used at any time to check the source code of any function known to LME.
By defulat, dbtype displays the source code to the standard output channel. A file descriptor can be specified as a named argument fd.
With an output argument, dbtype returns the function source code as a string.
use stdlib dbstop cart2pol (phi, r) = cart2pol(1, 2); <cart2pol:99> r = hypot(x, y); dbstep <cart2pol:100> phi = atan2(y, x); dbtype # 97 function (phi, r, z) = cart2pol(x, y, z) 98 99 r = hypot(x, y); > 100 phi = atan2(y, x);
Echo of code before its execution.
echo on echo off echo fun on echo(state) echo(state, fd) echo(fun, state) echo(fun, state, fd)
echo on enables the display of an echo of each line of function code before execution. The display includes the function name and the line number. echo off disables the echo.
The argument can also be passed as a boolean value with the functional form echo(state): echo on is equivalent to echo(true).
echo fun on enables echo for function named fun only. echo fun off disables echo (the function name is ignored); echo off has the same effect.
By default, the echo is output to the standard error channel (file descriptor 2). Another file descriptor can be specified as an additional numeric argument, with the functional form only.
Trace of a function:
use stdlib echo on C = compan([2,5,4]); compan 26 if min(size(v)) > 1 compan 29 v = v(:).'; compan 30 n = length(v); compan 31 M = [-v(2:end)/v(1); eye(n-2, n-1)];
Echo stored into a file 'log.txt':
fd = fopen('log.txt', 'w'); echo(true, fd); ... echo off fclose(fd);