code event value E_Fcall function call function E_Ffail function failure -1 E_Fresum function resumption 0 E_Fret function return value produced E_Fsusp function suspension value produced E_Frem function removal 0 E_Ocall operator call operation E_Ofail operator failure -1 E_Oresum operator resumption 0 E_Oret operator return value produced E_Osusp operator suspension value produced E_Orem operator removal 0 E_Pcall procedure call procedure E_Pfail procedure failure procedure E_Prem procedure removal procedure E_Presum procedure resumption procedure E_Pret procedure return value produced E_Psusp procedure suspension value produced mask events FncMask all function events OperMask all operator events ProcMask all procedure events
E_Fcall
, E_Ocall
, and
E_Pcall
all have type procedure
; more specific
information can be obtained using image()
on the event valueE_Ffail
, E_Fresum
, E_Frem
,
E_Ofail
, E_Oresum
, and E_Orem
are
not useful because no useful information is available at the time they
occur
code event value E_Lbang list generation list E_Lcreate list creation list E_Lget list get or pop list E_Lpull list pull list E_Lpush list push list E_Lput list put list E_Lrand list random reference list E_Lsub list subscript subscript E_Rbang record generation record E_Rcreate record creation record E_Rrand record random reference record E_Rsub record subscript subscript E_Sbang set generation set E_Screate set creation set E_Sdelete set deletion set E_Sinsert set insertion set E_Smember set membership set E_Trand set random reference table E_Tbang table generation table E_Tkey table key generation table E_Tcreate table creation table E_Tdelete table deletion table E_Tinsert table insertion table E_Tmember table membership table E_Trand table random reference table E_Tsub table subscript subscript masks events ListMask list events RecordMask record events SetMask set events TableMask table events StructMask all structure events
E_Lget
serves for both get()
and pop()
; they are just different names for the same function
code event value E_Sfail scanning failure old subject E_Snew environment creation new subject E_Spos scanning position position E_Sresum scanning resumption restored subject E_Ssusp scanning suspension current subject E_Srem environment removal old subject mask events ScanMask scanning events
E_Spos
events occur for all changes to the scanning position
except when a new scanning environment is createdE_Snew
event implies changing the scanning position
to 1
code event value E_Coact co-expression activation co-expression E_Cofail co-expression failure co-expression E_Coret co-expression return co-expression
code event value E_Assign assignment variable name E_Value assignment value value assigned E_Deref dereferencing of variable variable name E_Ssasgn assignment to substring length of result mask events AssignMask E_Assign and E_Value
E_Assign
E_Deref
is
based on the string produced by the function name()
E_Assign
and E_Deref
contains additional information about the nature
of identifier+
after an identifier name indicates a global variable,
:
a static variable, -
a local variable, and
^
a parametercount-tabulatewhich identifies the local identifier
count
in the proceduretabulate
E_Value
event occurs after the assignment has been
made; thus, an MP can change the value of a variable in a SP following
an E_Value
event and have the change be effectiveE_Ssasgn
events occur as the result of evaluating expressions
such as
s1[i:j] := s2which is equivalent to
s1 := s1[1:i] || s2 || s1[j:0](assuming
i
andj
are positive and in nondecreasing order)
code event value E_Aconv conversion attempt input value E_Fconv conversion failure input value E_Nconv conversion not needed input value E_Sconv conversion success output value mask events ConvMask all conversion events
E_Aconv
, which is followed by E_Tconv
E_Tconv
event occurs, a representative value of the type is used; this allows the
types for an attempted conversion to be determined in cases where the conversion
failsE_Fconv
and E_Nconv
are not particularly useful
code event value E_BlkDeAlc block deallocation bytes deallocated E_Coexpr co-expression allocation bytes allocated E_Cset cset allocation bytes allocated E_File file allocation bytes allocated E_Lelem list element allocation bytes allocated E_List list allocation bytes allocated E_Lrgint large integer allocation bytes allocated E_Real real allocation bytes allocated E_Record record allocation bytes allocated E_Refresh refresh allocation bytes allocated E_Selem set element allocation bytes allocated E_Set set allocation bytes allocated E_Slots hash header allocation bytes allocated E_StrDeAlc string deallocation bytes deallocated E_String string allocation bytes allocated E_Table table allocation bytes allocated E_Telem table element allocation bytes allocated E_Tvsubs substring tv allocation bytes allocated E_Tvtbl table-element tv allocation bytes allocated mask events AllocMask allocation events except deallocation ones
code event value E_Collect begin garbage collection region number E_EndCollect end of garbage collection null value E_TenureBlock tenure block region size E_Tenure tenure string region size
E_EndCollect
is in the event mask for EvGet()
,
the data objects saved by garbage collection are reported as allocation
events using the same event codes as for allocationE_Collect
event but before
the E_EndCollect
eventE_EndCollect
is in the event mask; monitors that request E_EndCollect
events
need to take into account the context in which allocation events are reported
name event value E_Intcall call of interpreter interpreter signal E_Intret return of interpreter interpreter signal E_Stack stack depth change stack depth
E_Stack
is erroneously large; use the event value of the first E_Stack
event as a base for subsequent values
name event value E_Loc location change line/col. #s E_MXevent event in MP window window event E_Opcode virtual-machine op. operation code E_Tick clock tick number of ticks E_Error run-time error error number E_Exit program exit exit code
E_Tick
events are obtained by checking the system clock
during program interpretation E_Tick
E_Loc
event contains the SP source-program
column number in the high-order 16 bits and the line number in the low-order
16 bits