DATA
)Parametrization of the exploration range.
range
::= {
fields…}
Field | Format | Description |
---|---|---|
"backward" (opt.) |
number | range for the write dependencies |
"forward" (opt.) |
number | range for the read dependencies |
DATA
)Global parametrization of the exploration.
explorationWindow
::= {
fields…}
Field | Format | Description |
---|---|---|
"perception" |
range |
how far dive will explore from root nodes ; must be a finite range |
"horizon" |
range |
range beyond which the nodes must be hidden |
DATA
)A node identifier in the graph
nodeId
::=
number
DATA
)A callsite
callsite
::=
{
"fun"
:
string ,"instr"
:
number | string}
DATA
)The callstack context for a node
DATA
)The description of a node locality
nodeLocality
::=
{
"file"
:
string ,"callstack"
:?
callstack
}
DATA
)A graph node
node
::=
{
"id"
:
nodeId
,"label"
:
string ,"kind"
:
string ,"locality"
:
nodeLocality
,"is_root"
:
boolean ,"backward_explored"
:
string ,"forward_explored"
:
string ,"writes"
:
location
[]
,"values"
:?
string ,"range"
:
number | string ,"type"
:?
string ,"taint"
:?
"direct"
|"indirect"
|"untainted"
}
DATA
)The dependency between two nodes
dependency
::=
{
"id"
:
number ,"src"
:
nodeId
,"dst"
:
nodeId
,"kind"
:
string ,"origins"
:
location
[]
}
DATA
)The whole graph being built
graphData
::=
{
"nodes"
:
node
[]
,"deps"
:
dependency
[]
}
DATA
)Graph differences from the last action.
diffData
::=
{
"root"
:?
nodeId
,"add"
:
{
"nodes"
:
node
[]
,"deps"
:
dependency
[]
}
,"sub"
:
nodeId
[]
}
SET
)Set the exploration window
input
::=
explorationWindow
output
::=
null
GET
)Retrieve the whole graph
input
::=
null
output
::=
graphData
EXEC
)Erase the graph and start over with an empty one
input
::=
null
output
::=
null
EXEC
)Add a node to the graph
input
::=
marker
output
::=
diffData
EXEC
)Explore the graph starting from an existing vertex
input
::=
nodeId
output
::=
diffData
EXEC
)Show the dependencies of an existing vertex
input
::=
nodeId
output
::=
diffData
EXEC
)Hide the dependencies of an existing vertex
input
::=
nodeId
output
::=
diffData