Newsgroups: comp.lang.apl
Path: watmath!ljdickey
From: ljdickey@math.uwaterloo.ca (L.J. Dickey)
Subject: StepView debugger
Message-ID: <BuuIIv.C0H@math.uwaterloo.ca>
Keywords: apl workspace stepview debugger
Organization: University of Waterloo
Date: Sat, 19 Sep 1992 22:01:43 GMT

A shareware APL program, Jim Weigang's StepView debugger, is now
available by anonymous ftp from the University of Waterloo's archives
as the following file:

	watserv1.uwaterloo.ca
        /ftparch/languages/apl/workspaces/stepview.zip

StepView is a debugger for the APL*PLUS /PC and APL*PLUS II /386
systems.  It displays your program on the screen and allows you to step
through it, line by line.  Once you've initialized the debugger in your
workspace, using either )COPY or a ]DEBUG command, StepView is a snap to
use--just type the statement that runs your program and press a function
key.  No modifications to your code are required.  StepView splits the
screen and displays your program (along with the state indicator) in the
top half of the screen.  The lower part of the screen is used for
program I/O and APL statements.  There are no restrictions on what
statements you can execute while debugging; you're always in immediate
execution mode with your program halted on a stop set.  You can modify
your function with the editor, then resume execution without having to
start over.  Function keys are provided to:

   - step into (debug) subroutines used on the current line,
     or step over them
   - step out of the suspended function (quit debugging it)
   - edit the suspended function (starting at the current line)
   - copy the current line into the scrolling space so you can
     execute parts of it
   - refresh the program listing or remove it from the screen
   - scroll the program listing
   - display a summary of the function keys

When you're done debugging, a single command will erase the debugger,
turn off all stops and traces, and restore your original function key
definitions.

The debugger is particularly useful when you are first writing a
program.  You can step through the code, checking variables as you go,
and catch errors before they turn into mysterious downstream
consequences.  It's great for novices, who may have a hard time figuring
out why a program has run amok.

To be honest, though, the debugger isn't perfect.  Because it's an
ordinary APL program and not something built into the interpreter, there
are limitations to what it can do.  You can't use it to debug programs
in graphics mode, and it has trouble with screen-oriented programs.
Would that I could use it to debug itself!  But for those computational
programs, the kind that mainframe applications used to consist of
entirely, the debugger works quite well.  And for the price, it can't be
beat.

The author welcomes comments and suggestions.  He can be reached at the
address given in the documentation or via e-mail as JimW@Math.UMass.Edu.

-- 
Prof. Leroy J. Dickey, Faculty of Mathematics, U of Waterloo, Canada  N2L 3G1
   Internet:      ljdickey@math.UWaterloo.ca
                  ljdickey@math.waterloo.edu
   UUCP:          ljdickey@watmath.UUCP
