Functions | |
VOID | LEVEL_CORE::BBL_MoveAllAttributes (BBL fromBbl, BBL toBbl) |
UINT32 | LEVEL_CORE::BBL_NumIns (BBL bbl) |
INS | LEVEL_PINCLIENT::BBL_InsHead (BBL x) |
INS | LEVEL_PINCLIENT::BBL_InsTail (BBL x) |
BBL | LEVEL_PINCLIENT::BBL_Next (BBL x) |
BBL | LEVEL_PINCLIENT::BBL_Prev (BBL x) |
BOOL | LEVEL_PINCLIENT::BBL_Valid (BBL x) |
BOOL | LEVEL_PINCLIENT::BBL_Original (BBL bbl) |
ADDRINT | LEVEL_PINCLIENT::BBL_Address (BBL bbl) |
USIZE | LEVEL_PINCLIENT::BBL_Size (BBL bbl) |
VOID | LEVEL_PINCLIENT::BBL_InsertCall (BBL bbl, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::BBL_InsertIfCall (BBL bbl, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::BBL_InsertThenCall (BBL bbl, IPOINT action, AFUNPTR funptr,...) |
BOOL | LEVEL_PINCLIENT::BBL_HasFallThrough (BBL bbl) |
ADDRINT LEVEL_PINCLIENT::BBL_Address | ( | BBL | bbl | ) |
BOOL LEVEL_PINCLIENT::BBL_HasFallThrough | ( | BBL | bbl | ) |
Refer INS_HasFallThrough for checking if an instruction could have a fall-through path based on the opcode.
VOID LEVEL_PINCLIENT::BBL_InsertCall | ( | BBL | bbl, | |
IPOINT | action, | |||
AFUNPTR | funptr, | |||
... | ||||
) |
Insert call relative to a bbl.
bbl | BBL to instrument | |
action | Specifies before, after, etc. IPOINT_BEFORE is always valid for all instructions. IPOINT_AFTER is valid only when a fall-through exists (i.e. Calls and unconditional branches will fail). IPOINT_ANYWHERE will put the instrumentation at a place inside the bbl for best performance IPOINT_TAKEN_BRANCH is invalid for non-branches. | |
funptr | Analysis function to call | |
... | IARG_TYPE. Arguments to pass to funptr |
VOID LEVEL_PINCLIENT::BBL_InsertIfCall | ( | BBL | bbl, | |
IPOINT | action, | |||
AFUNPTR | funptr, | |||
... | ||||
) |
Insert a call to funptr relative to a BBL. If funptr returns a non-zero ADDRINT, then the immediately following "then" analysis call is executed. Note that if CALL_ORDER is used, Both "if" and "then" analysis calls must have the same order.
bbl | BBL to instrument | |
action | Specifies before, after, etc. IPOINT_BEFORE is always valid for all instructions. IPOINT_AFTER is valid only when a fall-through exists (i.e. Calls and unconditional branches will fail). IPOINT_TAKEN_BRANCH is invalid for non-branches. | |
funptr | Analysis function to call. Its return type must be ADDRINT | |
... | IARG_TYPE. Arguments to pass to funptr |
VOID LEVEL_PINCLIENT::BBL_InsertThenCall | ( | BBL | bbl, | |
IPOINT | action, | |||
AFUNPTR | funptr, | |||
... | ||||
) |
Insert a call to funptr relative to a BBL. The function is called only if the immediately preceding "if" analysis call returns a non-zero value. Note that if CALL_ORDER is used, Both "if" and "then" analysis calls must have the same order.
bbl | BBL to instrument | |
action | Specifies before, after, etc. IPOINT_BEFORE is always valid for all instructions. IPOINT_AFTER is valid only when a fall-through exists (i.e. Calls and unconditional branches will fail). IPOINT_TAKEN_BRANCH is invalid for non-branches. | |
funptr | Analysis function to call | |
... | IARG_TYPE. Arguments to pass to funptr |
INS LEVEL_PINCLIENT::BBL_InsHead | ( | BBL | x | ) |
INS LEVEL_PINCLIENT::BBL_InsTail | ( | BBL | x | ) |
VOID LEVEL_CORE::BBL_MoveAllAttributes | ( | BBL | fromBbl, | |
BBL | toBbl | |||
) |
Move all attributes from one BBL to another
BBL LEVEL_PINCLIENT::BBL_Next | ( | BBL | x | ) |
UINT32 LEVEL_CORE::BBL_NumIns | ( | BBL | bbl | ) |
Number of INSs within a BBL.
BOOL LEVEL_PINCLIENT::BBL_Original | ( | BBL | bbl | ) |
BBL LEVEL_PINCLIENT::BBL_Prev | ( | BBL | x | ) |
USIZE LEVEL_PINCLIENT::BBL_Size | ( | BBL | bbl | ) |
BOOL LEVEL_PINCLIENT::BBL_Valid | ( | BBL | x | ) |