The debugger's screen prompt of 'DEBUGGER::' is not particularly informative and I would like to see it replaced by another that changes according to circumstances. What I have in mind is a prompt having the syntax:
<base> <filenumber>:<linenumber>: (where <base> is either D or X)
As a specific example, part way through debugging the prompt may be D 2:517:
This would mean the debugger is in decimal (as opposed to hexadecimal) mode and is stopped at a breakpoint in line 517 of source file 2.
Another example is X 47:
which would mean it is in hexadecimal mode and stopped in line 47 of the primary source file (i.e. file 0).
The above makes the debugger's 'line' command effectively redundant and it can therefore be removed from the command set. This improvement also helps when single stepping through a program as instead of entering the commands:
STEP LINE STEP LINE STEP LINE etc.
it would now only be necessary to enter:
STEP STEP STEP etc.
and yet still be fully aware of the program's progress.
This certainly makes for quicker debugging.
However it can be improved further. Sometimes it is necessary to enter STEP many times in order to debug just one line of the program, especially if the code in the line is complex. This makes it only too easy to enter STEP too many times and end up on the wrong statement. Naturally a breakpoint can be used, but this potentially involves three commands:
BREAKSET <line#> RUN BREAKREMOVE <line#>
The improvement I am suggesting involves the concept of a temporary breakpoint using the single command:
GOTO <line#>
This would have exactly the same effect as the above three commands combined. This may render the 'step' command redundant, especially if GOTO (without any parameter) means GOTO the line immediately following the current line.
The final change I am proposing is the introduction of abbreviations for command names, for example V as an new abbreviation for the VARIABLES command.
The full list could be as follows, with the command names being case-insensitive:
Code: Select all
New Par- Old
Name ams? Name
---- ---- ----
! - shell (same as SH command)
> Y redirect
? Y debug (same as D command)
A - arrays
A Y arrayshow
B - breakpoints
B Y breakset
BX - breakclear
BX Y breakremove
C - run (continue)
C> Y file (command redirection)
D Y debug (same as ? command)
DEC - dec
E Y errors
F - files
G -/Y (goto)
H -/Y help
HEX - hex
L - linkedlists
L Y listshow
LI Y listset (list index)
M Y memory
MR Y memoryraw
R - registers
R Y registerset
RP - report
S -/Y step
SET Y set (same as V command with a param.)
SH - shell (same as ! command)
ST - stack
SV - saveconfig
T -/Y history (trace)
V - variables
V Y set (same as SET command)
VX - variables nostructures
X - exit