Typedefs | |
typedef CONTEXT | CONTEXT |
Enumerations | |
enum | PROCESSOR_STATE { PROCESSOR_STATE_X87, PROCESSOR_STATE_XMM, PROCESSOR_STATE_YMM } |
Functions | |
BOOL | LEVEL_PINCLIENT::PIN_SupportsProcessorState (PROCESSOR_STATE state) |
BOOL | LEVEL_PINCLIENT::PIN_ContextContainsState (CONTEXT *ctxt, PROCESSOR_STATE state) |
VOID | LEVEL_PINCLIENT::PIN_SetContextReg (CONTEXT *ctxt, REG reg, ADDRINT val) |
ADDRINT | LEVEL_PINCLIENT::PIN_GetContextReg (const CONTEXT *ctxt, REG reg) |
VOID | LEVEL_PINCLIENT::PIN_SetContextFPState (CONTEXT *ctxt, const FPSTATE *fpstate) |
VOID | LEVEL_PINCLIENT::PIN_GetContextFPState (const CONTEXT *ctxt, FPSTATE *fpstate) |
VOID | LEVEL_PINCLIENT::PIN_SaveContext (const CONTEXT *ctxtFrom, CONTEXT *ctxtTo) |
VOID | LEVEL_PINCLIENT::PIN_ExecuteAt (const CONTEXT *ctxt) |
Usually, the tool receives context in the instrumentation callback like THREAD_START_CALLBACK, CONTEXT_CHANGE_CALLBACK, or when it specifies IARG_CONTEXT argument to the instrumentation routine. At this time, the tool can read the individual register values or save the entire context using the PIN_GetContextReg, PIN_GetContextFPState and PIN_SaveContext functions. The PIN_ExecuteAt function can be called from an analysis routine to change the control flow of the thread and start execution from the specified context. The PIN_SetContextReg and PIN_SetContextFPState functions can be used from callbacks to change the thread's register state.
|
Architectural state of the processor. |
|
enums for queries on the supported state: PIN_SupportsProcessorState and PIN_ContextContainsState |
|
Query if the specified CONTEXT contains the specified PROCESSOR_STATE.
|
|
A tool can call this API to abandon the current analysis function and resume execution of the calling thread at a new application register state. Note that this API does not return back to the caller's analysis function. This API can be called from an analysis function or a replacement routine, but not from a callback.
|
|
Get the floating point state of the specified context.
|
|
Get the value of the integer register or fp status/control register in the specified context. Note that fp registers such as fp-stack regs, xmm regs, ymm regs (when running with AVX support), can only read thru the FPSTATE * parameter of the PIN_GetContextFPState function
|
|
Copy the CONTEXT structure.
|
|
Set the given floating point state in the specified context.
|
|
Set the given value for the integer register or fp status/control register in the specified context. Note that fp registers such as fp-stack regs, xmm regs, ymm regs (when running with AVX support), can only set thru the FPSTATE * parameter of the PIN_SetContextFPState function
|
|
Query if Pin supports the specified PROCESSOR_STATE.
|