Pin
|
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 to 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 BBLs. IPOINT_AFTER is valid only when a fall-through exists. Can only be used if BBL_HasFallThrough is true. IPOINT_ANYWHERE will put the instrumentation at a place inside the bbl for best performance. IPOINT_TAKEN_BRANCH is valid only when the BBL ends with a control-flow instruction. Can only be used if INS_IsValidForIpointTakenBranch(BBL_ins_tail(bbl)) is true. |
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 when the analysis call executes. See the documentation in BBL_InsertCall(). |
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 when the analysis call executes. See the documentation in BBL_InsertCall(). |
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 | ) |