ICFGBuildingStrategy<'FnCtx, 'GlCtx> Type
A strategy that defines how CFGActions are handled to build a function. This interface will be accessed in parallel by multiple threads, so every operation should be thread-safe. Note that CFGBuildingContext as well as 'FnCtx are only accessed by a single thread, though.
Instance members
| Instance member |
Description
|
|
Return the prioritizer to use for the CFG actions.
|
Full Usage:
this.AllowBBLOverlap
Returns: bool
Modifiers: abstract |
Whether to allow basic block overlap or not while building a CFG.
|
Full Usage:
this.FindCandidatesForPostProcessing
Parameters:
ICFGBuildable<'FnCtx, 'GlCtx>[]
Returns: Addr[]
Modifiers: abstract |
This is a callback that is called when all function builders are done building. This function returns a list of candidate functions to analyze based on the given list of function builders. When it returns an empty array, it means that there are no candidates to analyze, and the recovery process is done.
|
Full Usage:
this.OnAction
Parameters:
CFGBuildingContext<'FnCtx, 'GlCtx>
arg1 : CFGActionQueue
arg2 : CFGAction
Returns: CFGResult
Modifiers: abstract |
This is a callback that is called for every CFGAction generated for a function. Each action may discover a new basic block, add a new edge, etc. This function returns a CFGResult that indicates whether the function building should continue, postpone, or exit with an error.
|
|
This is a callback that is called when a new function builder is created.
|
Full Usage:
this.OnCyclicDependency
Parameters:
(Addr * ICFGBuildable<'FnCtx, 'GlCtx>)[]
Returns: ICFGBuildable<'FnCtx, 'GlCtx>
Modifiers: abstract |
This is a callback that is called when a cyclic dependency is detected from the TaskManager. The array of dependent functions is passed as an argument, and this function returns the function builder that should be built first. When the given array is empty, this function will raise an exception.
|
Full Usage:
this.OnFinish
Parameters:
CFGBuildingContext<'FnCtx, 'GlCtx>
Returns: CFGResult
Modifiers: abstract |
This is a callback that is called when all CFGActions are processed, i.e., when CFGActionQueue is empty.
|
|
Return the recovery targets to build.
|
B2R2