IARG_ADDRINT |
Type: ADDRINT. Constant value (additional arg required). |
IARG_PTR |
Type: "VOID *". Constant value (additional pointer arg required). |
IARG_BOOL |
Type: BOOL. Constant (additional BOOL arg required). |
IARG_UINT32 |
Type: UINT32. Constant (additional integer arg required). |
IARG_INST_PTR |
Type: ADDRINT. The address of the instrumented instruction. This value does not change at IPOINT_AFTER. This is simply shorthand for IARG_ADDRINT, INS_Address(ins) . |
IARG_REG_VALUE |
Type: ADDRINT for integer register. Value of a register (additional register arg required) REG: Register Object Basically, this cannot be used to retrieve the value of registers whose size is different than ADDRINT's (i.e.: x87/XMM/YMM/ZMM registers) or registeres which are not architectural (REG_PIN_*), but there are some exceptions for this rule. |
IARG_REG_REFERENCE |
Type: "@ref PIN_REGISTER *". Pointer to union holding register contents. Registers are updated. Not supported in Probe mode or with the Buffering APIs. |
IARG_REG_CONST_REFERENCE |
Type: "@ref PIN_REGISTER *". Pointer to union holding register contents. Registers are not updated. Not supported with the Buffering APIs. |
IARG_MEMORYREAD_EA |
Type: ADDRINT. Effective address of a memory read, only valid if INS_IsMemoryRead is true and at IPOINT_BEFORE. |
IARG_MEMORYREAD2_EA |
Type: ADDRINT. Effective address of a 2nd memory read (e.g. 2nd operand in cmps on ia32), only valid at IPOINT_BEFORE. |
IARG_MEMORYWRITE_EA |
Type: ADDRINT. Effective address of a memory write, only valid at IPOINT_BEFORE. |
IARG_MEMORYREAD_SIZE |
Type: UINT32. Size in bytes of memory read. |
IARG_MEMORYWRITE_SIZE |
Type: UINT32. Size in bytes of memory write. |
IARG_MEMORYREAD_PTR |
Same as IARG_MEMORYREAD_EA, but allows registering a MEMORY_ADDR_TRANS_CALLBACK. |
IARG_MEMORYREAD2_PTR |
Same as IARG_MEMORYREAD2_EA, but allows registering a MEMORY_ADDR_TRANS_CALLBACK. |
IARG_MEMORYWRITE_PTR |
Same as IARG_MEMORYWRITE_EA, but allows registering a MEMORY_ADDR_TRANS_CALLBACK. |
IARG_MEMORYOP_PTR |
Same as IARG_MEMORYOP_EA, but allows registering a MEMORY_ADDR_TRANS_CALLBACK. |
IARG_MULTI_MEMORYACCESS_EA |
Type: PIN_MULTI_MEM_ACCESS_INFO* the addresses read by the various vgather* instructions. |
IARG_EXPLICIT_MEMORY_EA |
Type: ADDRINT. Effective address of the explicit memory operand. Useful for instrumenting LEA instructions. |
IARG_BRANCH_TAKEN |
Type: BOOL. Non zero if a branch is taken. |
IARG_BRANCH_TARGET_ADDR |
Type: ADDRINT. Target address of this branch instruction, only valid if INS_IsBranchOrCall is true. |
IARG_FALLTHROUGH_ADDR |
Type: ADDRINT. Fall through address of this instruction. |
IARG_EXECUTING |
Type: BOOL. False if the instruction will not be executed because of predication, otherwise true. |
IARG_FIRST_REP_ITERATION |
Type: BOOL. True if INS_HasRealRep(ins) and this the first iteration of the REP sequence, otherwise false. |
IARG_PREDICATE |
Reserved. Do not use. |
IARG_STACK_VALUE |
Reserved. Do not use. |
IARG_STACK_REFERENCE |
Reserved. Do not use. |
IARG_MEMORY_VALUE |
Reserved. IA32(e) only. |
IARG_MEMORY_REFERENCE |
Reserved. IA32(e) only. |
IARG_SYSCALL_NUMBER |
Type: ADDRINT. System call number. Valid for IPOINT_BEFORE at the system call instruction. |
IARG_SYSARG_REFERENCE |
Type: "ADDRINT *". Pointer to system call argument n. Valid for IPOINT_BEFORE at the system call instruction. (First argument number is 0.). |
IARG_SYSARG_VALUE |
Type: ADDRINT. System call argument n. Valid for IPOINT_BEFORE at the system call instruction. (First argument number is 0.). |
IARG_SYSRET_VALUE |
Type: ADDRINT. System call return value. On Linux and MacOS the value is -1 if the system call failed. (IPOINT_AFTER only). |
IARG_SYSRET_ERRNO |
Type: INT32. System call errno (IPOINT_AFTER_only). |
IARG_FUNCARG_CALLSITE_REFERENCE |
Type: "ADDRINT *". Pointer to integer argument n. Valid only at the call site. (First argument number is 0.) |
IARG_FUNCARG_CALLSITE_VALUE |
Type: ADDRINT. Integer argument n. Valid only at the call site. (First argument number is 0.) |
IARG_FUNCARG_ENTRYPOINT_REFERENCE |
Type: "ADDRINT *". Pointer to integer argument n. Valid only at the entry point of a routine. (First argument number is 0.) |
IARG_FUNCARG_ENTRYPOINT_VALUE |
Type: ADDRINT. Integer argument n. Valid only at the entry point of a routine. (First argument number is 0.) |
IARG_FUNCRET_EXITPOINT_REFERENCE |
Type: "ADDRINT *". Pointer to function result. Valid only at return instruction. |
IARG_FUNCRET_EXITPOINT_VALUE |
Type: ADDRINT. Function result. Valid only at return instruction. |
IARG_RETURN_IP |
Type: ADDRINT. Return address for function call, valid only at the function entry point. |
IARG_ORIG_FUNCPTR |
Type: AFUNPTR. Function pointer to the relocated entry of the original uninstrumented function. |
IARG_PROTOTYPE |
Type: PROTO. The function prototype of the application function. See Prototypes. |
IARG_THREAD_ID |
Type: THREADID. Application thread id. |
IARG_CONTEXT |
Type: "CONTEXT *". Handle to access a context (architectural state). When passed at IPOINT_AFTER or IPOINT_TAKEN_BRANCH, PC points to the next instruction. Upon return from the analysis routine, Pin ignores any changes you've made to the CONTEXT. If you want to change register values, use IARG_REG_REFERENCE, IARG_RETURN_REGS, or PIN_ExecuteAt(). See Probe Mode Considerations for probe mode restrictions. Not supported with the Buffering APIs. |
IARG_CONST_CONTEXT |
Type: "CONTEXT *". Like IARG_CONTEXT, but tool receives a read-only CONTEXT*. PIN_SetContextReg and PIN_SetContextFPState will not work with IARG_CONST_CONTEXT. The overhead of IARG_CONST_CONTEXT is considerably lower than that of IARG_CONTEXT. Tools that need a CONTEXT* and only read from it should use IARG_CONST_CONTEXT. Tools that need a CONTEXT* and only occasionally write into it should also use IARG_CONST_CONTEXT. One example of a tool that needs a CONTEXT* and only occasionally writes into it, would be an emulator that would need to write into the CONTEXT* only when an exception occurs, and then raise an exception with the CONTEXT*. PIN_SaveContext can be used by the tool to get a writable copy of the CONTEXT*. IARG_CONST_CONTEXT is available only in Jit mode, and is silently deprecated to IARG_CONTEXT in probe mode |
IARG_PRESERVE |
Type: "REGSET *". Used to specify registers whose values will be the same upon return from the analysis routine. Should be used to specify caller-saved registers which are preserved by the analysis routine. When a non-inlinable analysis routine preserves caller-saved registers, Pin can avoid generating code to preserve these registers, across the analysis call, if they are specified in the IARG_PRESERVE. e.g. if a non-inlinable analysis routine preserves the values in the x87 registers, then Pin can avoid generating code to preserve these registers, across the analysis call, if REG_X87 is specified in the IARG_PRESERVE e.g. if a non-inlinable analysis routine preserves the values in XMM caller saved registers, then Pin can avoid generating code to preserve these registers, across the analysis call, if those preserved XXM registers are specified in the IARG_PRESERVE IARG_PRESERVE must be followed by a REGSET* that points to the REGSET containing the registers preserved. See the REGSET_* macros defined under REG (specific to the IA-32 and Intel(R) 64 architectures) for REGSET construction and manipulation. |
IARG_RETURN_REGS |
Register to write analysis function return value (additional register arg required). Not supported in Probe mode. |
IARG_CALL_ORDER |
Type: CALL_ORDER. Determine order of analysis calls. See CALL_ORDER. |
IARG_REG_NAT_VALUE |
Type: BOOL. Nat value of register. Ipf only. |
IARG_REG_OUTPUT_FRAME_VALUE |
Type: ADDRINT for integer registers. Like IARG_REG_VALUE, but use index into RSE output frame instead of register name. IA64 only. |
IARG_REG_OUTPUT_FRAME_REFERENCE |
Type: "ADDRINT *". Like IARG_REG_REFERENCE, but use index into RSE output frame instead of register name. IA64 only. |
IARG_IARGLIST |
Type: IARGLIST. List of IARGS which can be constructed one IARG at a time. |
IARG_FAST_ANALYSIS_CALL |
No type: Use a fast linkage to call the analysis function. See PIN_FAST_ANALYSIS_CALL. |
IARG_SYSCALL_ARG0 |
DEPRECATED, see IARG_SYSARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_SYSCALL_ARG1 |
DEPRECATED, see IARG_SYSARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_SYSCALL_ARG2 |
DEPRECATED, see IARG_SYSARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_SYSCALL_ARG3 |
DEPRECATED, see IARG_SYSARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_SYSCALL_ARG4 |
DEPRECATED, see IARG_SYSARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_SYSCALL_ARG5 |
DEPRECATED, see IARG_SYSARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_RESULT0 |
DEPRECATED, see IARG_SYSRET_{VALUE,REFERENCE}. |
IARG_G_ARG0_CALLEE |
DEPRECATED, see IARG_FUNCARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_ARG1_CALLEE |
DEPRECATED, see IARG_FUNCARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_ARG2_CALLEE |
DEPRECATED, see IARG_FUNCARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_ARG3_CALLEE |
DEPRECATED, see IARG_FUNCARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_ARG4_CALLEE |
DEPRECATED, see IARG_FUNCARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_ARG5_CALLEE |
DEPRECATED, see IARG_FUNCARG_CALLSITE_{VALUE,REFERENCE}. |
IARG_G_ARG0_CALLER |
DEPRECATED, see IARG_FUNCARG_ENTRYPOINT_{VALUE,REFERENCE}. |
IARG_G_ARG1_CALLER |
DEPRECATED, see IARG_FUNCARG_ENTRYPOINT_{VALUE,REFERENCE}. |
IARG_G_ARG2_CALLER |
DEPRECATED, see IARG_FUNCARG_ENTRYPOINT_{VALUE,REFERENCE}. |
IARG_G_ARG3_CALLER |
DEPRECATED, see IARG_FUNCARG_ENTRYPOINT_{VALUE,REFERENCE}. |
IARG_G_ARG4_CALLER |
DEPRECATED, see IARG_FUNCARG_ENTRYPOINT_{VALUE,REFERENCE}. |
IARG_G_ARG5_CALLER |
DEPRECATED, see IARG_FUNCARG_ENTRYPOINT_{VALUE,REFERENCE}. |
IARG_MEMORYOP_EA |
Type: ADDRINT. Effective address of a memory op (memory op index is next arg); only valid at IPOINT_BEFORE. |
IARG_MEMORYOP_MASKED_ON |
Type: BOOL. TRUE if the this memory op (memory op index is next arg) is masked on; only valid at IPOINT_BEFORE. |
IARG_TSC |
Type: UINT64. Time Stamp Counter value at the point of entering the analysis call. |
IARG_FILE_NAME |
Reserved for internal use only. |
IARG_LINE_NO |
Reserved for internal use only. |
IARG_LAST |
Reserved for internal use only. |