TMGIDE.m
From VistApedia
;"------------------------------------------------------------
;"------------------------------------------------------------
;"
;" GT.M Debug Tracer
;"
;" K. Toppenberg
;" 4-13-2005
;" License: GPL Applies
;"
;"
;" This program will launch a shell for the TMG STEP TRAP debugger
;" It provides the user with a prompt, like this:
;"
;" (^ to quit) IDE>
;"
;" Any valid M code may be entered here. To use the tracing
;" ability, launch a function, like this:
;"
;" (^ to quit) IDE>do ^MyFunction
;"
;"
;" Dependancies:
;" Uses TMGTRSTP,TMGTERM
;"
;"------------------------------------------------------------
;"------------------------------------------------------------
Start
set TMGScrWidth=70
set TMGScrHeight=10
do SetGlobals^TMGTERM
set TMGNlFGColor=TMGcWhite
set TMGNlBGColor=TMGcBlack
set TMGDbFGColor=TMGcBlack
set TMGDbBFColor=TMGcWhite
set ^TMP("TMGIDE",$J,"Normal Foreground Color")=TMGcBlack
set ^TMP("TMGIDE",$J,"Normal Background Color")=TMGcWhite
set ^TMP("TMGIDE",$J,"Debug Foreground Color")=TMGcWhite
set ^TMP("TMGIDE",$J,"Debug Background Color")=TMGcBlack
for i=1:1:80 write !
write !,"Welcome to the TMG debugging environment",!
write "Enter any valid M command...",!
set $ZTRAP="do ErrTrap^TMGTPSTP($ZPOS) break"
set $ZSTATUS=""
do Prompt
Done
do ShutDown
quit
;"-------------------------------------------------------------------
Prompt
new Line
read !,"(^ to quit) IDE>",Line,!
if Line="^" set $ZSTEP="" quit
set $ZSTEP="N TMGTrap S TMGTrap=$$STEPTRAP^TMGTPSTP($ZPOS) zstep:(TMGTrap=1) into zstep:(TMGTrap=2) over zcontinue"
;set $ZSTEP="do STEPTRAP^TMGTPSTP($ZPOS) zstep into zcontinue"
set TMGRunMode=1 ;"1=Step-by-step mode
zstep into
xecute Line
set $ZSTEP="" ;"turn off step capture
goto Prompt
ShutDown
;"do ShowCode("",80,15,1)
do KillGlobals^TMGTERM
kill TMGNlFGColor
kill TMGNlBGColor
kill TMGDbFGColor
kill TMGDbBFColor
quit
BKPT
read "Enter breakpoint (e.g. Label+8^MyFunct): ",Pos,!
set Pos=Pos_":""n tmg s tmg=$$STEPTRAP^TMGTPSTP($ZPOS,1)"""
ZBREAK @Pos
write "ZBREAK ",Pos,!
quit