Open topic with navigation
The optional parameter n specifies that only the first n or last ¯n lines of the output should be displayed.
The list consists of a line for each suspended or pendent operation beginning with the most recently suspended function or operator. Each line may be:
)SI #.PLUS* . #.MATDIV #.FOO* ⍎
This example indicates that at some point function FOO was executed and suspended on line 1. Subsequently, function MATDIV was invoked, with a function derived from the Inner Product or Outer Product operator (.) having defined function PLUS as an operand.
In the following, function foo in namespace x has called goo in namespace y. Function goo has then changed space (⎕CS) to namespace z where it has been suspended:
)SI [z] y.goo* x.foo
In a multi-threading application, where parent threads spawn child threads, the state indicator assumes the structure of a branching tree. Branches of the tree are represented by indenting lines belonging to child threads. For example:
)SI · #.Calc &5 · · #.DivSub · &7 · · #.DivSub · &6 · #.Div* &4 #.Sub #.Main
Here, Main has called Sub, which has spawned threads 4 and 5 with functions: Div and Calc. Function Div, after spawning DivSub in each of threads 6 and 7, has been suspended at line .
The state indicator for a particular thread tn may be displayed by specifying the parameter -tid=tn.
⎕←foo&¨10 10 10 10 ┌→─────────┐ │9 10 11 12│ └~─────────┘ )si · #.foo &9 · #.foo &10 · #.foo &11 · #.foo &12 )si -tid=11 #.foo