CodeManager manages all the processed information about the binary code including *parsed* instructions, their basic blocks, functions, as well as exception handling routines.
Constructor | Description |
|
|
Instance member | Description |
Full Usage:
this.AddBBL(blkRange) (irLeaders) (funcEntry) (insAddrs)
Parameters:
AddrRange
irLeaders : Set<ProgramPoint>
funcEntry : Addr
insAddrs : Addr list
|
|
Full Usage:
this.BBLCount
Returns: int
|
|
|
|
Full Usage:
this.FoldBBLs(fn) (acc)
Parameters:
'a -> KeyValuePair<Addr, BBLInfo> -> 'a
acc : 'a
Returns: 'a
|
|
Full Usage:
this.FoldInstructions(fn) (acc)
Parameters:
'a -> KeyValuePair<Addr, InstructionInfo> -> 'a
acc : 'a
Returns: 'a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
this.InstructionCount
Returns: int
|
|
Full Usage:
this.ParseBBL(hdl) (mode) (leaderAddr) (func) (evts)
Parameters:
BinHandle
mode : ArchOperationMode
leaderAddr : Addr
func : RegularFunction
evts : CFGEvents
Returns: Result<CFGEvents, ErrorCase>
|
Parse an instruction-level basic block starting from the given leader address. Return new CFG events to handle.
|
Full Usage:
this.PromoteBBL(hdl) (bblAddr) (bbl) (dataMgr) (evts)
Parameters:
BinHandle
bblAddr : Addr
bbl : BBLInfo
dataMgr : DataManager
evts : CFGEvents
Returns: RegularFunction * CFGEvents
|
The BBL had been created as a non-function bbl; there was a jump edge to this BBL. However, we later found that this block was a function and the jump edge must be changed to a tail-call edge. So we turn the BBL into a function. We call this process as BBL promotion.
|
|
|
|
|
Full Usage:
this.ReplaceInlinedAssemblyChunk(insAddrs) (chunk) (evts)
Parameters:
Addr list
chunk : Instruction
evts : CFGEvents
Returns: CFGEvents
|
|
|
|
Full Usage:
this.SplitBlock(bbl) (splitAddr) (evts)
Parameters: Returns: ProgramPoint option * CFGEvents
|
Split the given basic block into two at the given address (splitAddr), and returns a pair of (the address of the front bbl after the cut-out, and new events). The front bbl may not exist if the split point is at the address of an existing bbl leader.
|
|
|
|