DisasmCFG Type
Disassembly-based CFG, where each node contains disassembly code. This is the most user-friendly CFG, although we do not use this for internal analyses. Therefore, this class does not provide ways to modify the CFG.
Constructors
| Constructor |
Description
|
Full Usage:
DisasmCFG(disasmBuilder, ircfg)
Parameters:
IDisasmBuilder
ircfg : LowUIRCFG
Returns: DisasmCFG
|
|
Instance members
| Instance member |
Description
|
|
Get an array of all edges in this CFG.
|
|
Get an array of exit vertices in this CFG.
|
Full Usage:
this.FindEdge
Parameters:
IVertex<DisasmBasicBlock>
dst : IVertex<DisasmBasicBlock>
Returns: Edge<DisasmBasicBlock, CFGEdgeKind>
|
Find an edge between the given source and destination vertices.
|
Full Usage:
this.FoldEdge
Parameters:
'a -> Edge<DisasmBasicBlock, CFGEdgeKind> -> 'a
acc : 'a
Returns: 'a
Type parameters: 'a |
Fold the edges of this CFG with the given function and accumulator.
|
Full Usage:
this.FoldVertex
Parameters:
'a -> IVertex<DisasmBasicBlock> -> 'a
acc : 'a
Returns: 'a
Type parameters: 'a |
Fold the vertices of this CFG with the given function and accumulator.
|
Full Usage:
this.GetPredEdges
Parameters:
IVertex<DisasmBasicBlock>
Returns: Edge<DisasmBasicBlock, CFGEdgeKind>[]
|
Get the predecessor edges of the given vertex.
|
Full Usage:
this.GetPreds
Parameters:
IVertex<DisasmBasicBlock>
Returns: IVertex<DisasmBasicBlock>[]
|
Get the predecessors of the given vertex.
|
Full Usage:
this.GetSuccEdges
Parameters:
IVertex<DisasmBasicBlock>
Returns: Edge<DisasmBasicBlock, CFGEdgeKind>[]
|
Get the successor edges of the given vertex.
|
Full Usage:
this.GetSuccs
Parameters:
IVertex<DisasmBasicBlock>
Returns: IVertex<DisasmBasicBlock>[]
|
Get the successors of the given vertex.
|
|
Get the implementation type of this CFG.
|
Full Usage:
this.IsEmpty
Returns: bool
|
Is this empty? A CFG is empty when there is no vertex.
|
|
Iterate over the edges of this CFG with the given function.
|
|
Iterate over the vertices of this CFG with the given function.
|
|
Get the root vertices of this CFG.
|
|
Get exactly one root vertex of this CFG. If there are multiple root vertices, this will raise an exception.
|
Full Usage:
this.Size
Returns: int
|
Number of vertices.
|
Full Usage:
this.TryFindEdge
Parameters:
IVertex<DisasmBasicBlock>
dst : IVertex<DisasmBasicBlock>
Returns: Edge<DisasmBasicBlock, CFGEdgeKind> option
|
Find an edge between the given source and destination vertices. This function returns an Option type. If there is no such an edge, it returns None.
|
|
Get an array of unreachable vertices in this CFG.
|
|
Get an array of all vertices in this CFG.
|
B2R2