Debug Code¶
Insert breaks¶
->'break line'
Trace errors¶
)trace
or )TRACE
is designed for printing error messages after
a runtime error occurs.
//after an error occurs
)trace
//if more lines should be printed
)trace 50
An example¶
Add a break line ->'stop after while'
into the script TSORT.esf
under the ws
folder.
@.Z<-TSORT G;N;ML
L<-!0
S<-(0=+/.G)/GL<-!1^.#G
while(0<#S){
L<-L,N<-S[1]
S<-1!.S
ML<-G[N;]/GL
G[N;ML]<-0
S<-S,(0=+/.G[;ML])/ML
}
->'stop after while'
if(0<+/+/G)Z<-'Graph G is not a cyclic'
else Z<-L
@.
After the script is saved, it can be executed in interpreter environment.
TSORT G
triggers an error, then the program is terminated.)TRACE
prints the error messages as follows.
)fload tsort
saved 2015.11.19 00:32:06 (gmt-5)
TSORT G
stop after while
Error:
TSORT[12] ->'stop after while'
^
)TRACE
name[ 100]: TSORT
total lines: 18 step line content
[ 53] [ 5] S<-1!.S
[ 54] [ 6] ML<-G[N;]/GL
[ 55] [ 7] G[N;ML]<-0
[ 56] [ 8] S<-S,(0=+/.G[;ML])/ML
[ 57] [ 9]
[ 58] [ 10] ->L0
[ 59] [ 3] L0:->(~0<#S)/L1
[ 60] [ 4] L<-L,N<-S[1]
[ 61] [ 5] S<-1!.S
[ 62] [ 6] ML<-G[N;]/GL
[ 63] [ 7] G[N;ML]<-0
[ 64] [ 8] S<-S,(0=+/.G[;ML])/ML
[ 65] [ 9]
[ 66] [ 10] ->L0
[ 67] [ 3] L0:->(~0<#S)/L1
[ 68] [ 11] L1:
[ 69] [ 12] ->'stop after while'
--trace--version--0.02a--