|
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) |
|
Sequence of instructions that is always entered at the top and exited at the bottom by a fall through and/or taken branch. If Pin detects a jump to an instruction in the middle of a bbl, it will create a new bbl beginning at the target. See Instrumentation Granularity.
◆ BBL_Address()
ADDRINT LEVEL_PINCLIENT::BBL_Address |
( |
BBL |
bbl | ) |
|
- Returns
- Address of a bbl
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_HasFallThrough()
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.
- Returns
- TRUE if the BBL has a fall-through bbl within the trace, else returns FALSE.
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_InsertCall()
VOID LEVEL_PINCLIENT::BBL_InsertCall |
( |
BBL |
bbl, |
|
|
IPOINT |
action, |
|
|
AFUNPTR |
funptr, |
|
|
|
... |
|
) |
| |
Insert call relative to a bbl.
- Parameters
-
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 |
- Availability:
- Mode: JIT
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_InsertIfCall()
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.
- Parameters
-
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 |
- Availability:
- Mode: JIT
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_InsertThenCall()
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.
- Parameters
-
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 |
- Availability:
- Mode: JIT
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_InsHead()
INS LEVEL_PINCLIENT::BBL_InsHead |
( |
BBL |
x | ) |
|
- Returns
- First instruction of bbl
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_InsTail()
INS LEVEL_PINCLIENT::BBL_InsTail |
( |
BBL |
x | ) |
|
- Returns
- Last instruction of bbl
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_MoveAllAttributes()
VOID LEVEL_CORE::BBL_MoveAllAttributes |
( |
BBL |
fromBbl, |
|
|
BBL |
toBbl |
|
) |
| |
Move all attributes from one BBL to another
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_Next()
BBL LEVEL_PINCLIENT::BBL_Next |
( |
BBL |
x | ) |
|
- Returns
- Next bbl or BBL_INVALID() if this is the end of trace or rtn
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_NumIns()
UINT32 LEVEL_CORE::BBL_NumIns |
( |
BBL |
bbl | ) |
|
Number of INSs within a BBL.
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_Original()
BOOL LEVEL_PINCLIENT::BBL_Original |
( |
BBL |
bbl | ) |
|
- Returns
- Whether the BBL data structure has been instrumented or optimized since it was created
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_Prev()
BBL LEVEL_PINCLIENT::BBL_Prev |
( |
BBL |
x | ) |
|
- Returns
- Previous bbl or BBL_INVALID() if this is the beginning of trace or rtn
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_Size()
USIZE LEVEL_PINCLIENT::BBL_Size |
( |
BBL |
bbl | ) |
|
- Returns
- Size of bbl code, in bytes
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All
◆ BBL_Valid()
BOOL LEVEL_PINCLIENT::BBL_Valid |
( |
BBL |
x | ) |
|
- Returns
- True if x is not BBL_INVALID()
- Availability:
- Mode: JIT & Probe
O/S: Linux, Windows & macOS*
CPU: All