#include "level_base.H"
#include "level_core.H"
#include "level_imgio.H"
#include "level_vmclient.H"
#include "level_pinclient.H"
#include <set>
#include <map>
#include <algorithm>
#include <stdlib.h>
#include "my_elf.h"
#include "my_unistd.H"
#include <sys/syscall.h>
#include <iostream>
Typedefs | |
typedef TRACE_CLASS * | LEVEL_PINCLIENT::TRACE |
typedef COMPLEX_CALLBACKVAL_BASE * | LEVEL_PINCLIENT::PIN_CALLBACK |
typedef VOID(* | LEVEL_PINCLIENT::REMOVE_INSTRUMENTATION_CALLBACK )(VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::DETACH_CALLBACK )(VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::DETACH_PROBED_CALLBACK )(VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::ATTACH_PROBED_CALLBACK )(VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::APPLICATION_START_CALLBACK )(VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::FINI_CALLBACK )(INT32 code, VOID *v) |
typedef size_t(* | LEVEL_PINCLIENT::FETCH_CALLBACK )(void *buf, ADDRINT addr, size_t size, EXCEPTION_INFO *pExceptInfo, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::OUT_OF_MEMORY_CALLBACK )(size_t size, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::PREPARE_FOR_ATEXIT_CALLBACK )(VOID *v) |
typedef ADDRINT(PIN_FAST_ANALYSIS_CALL * | LEVEL_PINCLIENT::MEMORY_ADDR_TRANS_CALLBACK )(PIN_MEM_TRANS_INFO *memTransInfo, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::FORK_CALLBACK )(THREADID threadid, const CONTEXT *ctxt, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::THREAD_START_CALLBACK )(THREADID threadIndex, CONTEXT *ctxt, INT32 flags, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::THREAD_FINI_CALLBACK )(THREADID threadIndex, const CONTEXT *ctxt, INT32 code, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::CONTEXT_CHANGE_CALLBACK )(THREADID threadIndex, CONTEXT_CHANGE_REASON reason, const CONTEXT *from, CONTEXT *to, INT32 info, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::SYSCALL_ENTRY_CALLBACK )(THREADID threadIndex, CONTEXT *ctxt, SYSCALL_STANDARD std, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::SYSCALL_EXIT_CALLBACK )(THREADID threadIndex, CONTEXT *ctxt, SYSCALL_STANDARD std, VOID *v) |
typedef BOOL(* | LEVEL_PINCLIENT::INTERCEPT_SIGNAL_CALLBACK )(THREADID tid, INT32 sig, CONTEXT *ctxt, BOOL hasHandler, const EXCEPTION_INFO *pExceptInfo, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::PROBES_INSERTED_CALLBACK )(IMG img, VOID *v) |
typedef VOID *(* | LEVEL_PINCLIENT::TRACE_BUFFER_CALLBACK )(BUFFER_ID id, THREADID tid, const CONTEXT *ctxt, VOID *buf, UINT64 numElements, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::INS_INSTRUMENT_CALLBACK )(INS ins, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::TRACE_INSTRUMENT_CALLBACK )(TRACE trace, VOID *v) |
typedef VOID(* | LEVEL_PINCLIENT::RTN_INSTRUMENT_CALLBACK )(RTN rtn, VOID *v) |
Enumerations | |
enum | REPLAY_MODE { REPLAY_MODE_NONE = 0x00, LEVEL_PINCLIENT::REPLAY_MODE_IMAGEOPS = 0x01, REPLAY_MODE_ALL = REPLAY_MODE_IMAGEOPS } |
enum | LEVEL_PINCLIENT::PROBE_MODE { PROBE_MODE_DEFAULT = 0, PROBE_MODE_ALLOW_RELOCATION = (1<<0) } |
enum | LEVEL_PINCLIENT::FPOINT { LEVEL_PINCLIENT::FPOINT_BEFORE, LEVEL_PINCLIENT::FPOINT_AFTER_IN_PARENT, LEVEL_PINCLIENT::FPOINT_AFTER_IN_CHILD } |
enum | CONDINSTSTATE { CONDINST_NORMAL, CONDINST_IF, CONDINST_THEN } |
Functions | |
GLOBALCONST PIN_CALLBACK | LEVEL_PINCLIENT::PIN_CALLBACK_INVALID (0) |
VOID | LEVEL_PINCLIENT::VmFunctionNotInitialized () |
LOCALFUN VOID | LEVEL_PINCLIENT::PIN_RemoveToolCallbacks () |
LOCALVAR KNOB< BOOL > | LEVEL_PINCLIENT::KnobProfile (KNOB_MODE_WRITEONCE,"supported:stat","profile","0","print amount of memory dynamically allocated but not yet freed by the tool") |
BOOL | LEVEL_PINCLIENT::IsThreadInFiniCallback (OS_THREAD_ID sysId) |
LOCALFUN VOID | LEVEL_PINCLIENT::SetProcessExiting () |
LOCALFUN VOID | LEVEL_PINCLIENT::Shutdown (INT32 exitCode, BOOL waitToolThreads) |
LOCALFUN VOID | LEVEL_PINCLIENT::DoInstructions (TRACE trace) |
LOCALFUN BOOL | LEVEL_PINCLIENT::CheckNoJITCallbacks () |
LOCALFUN BOOL | LEVEL_PINCLIENT::CheckNoProbeCallbacks () |
LOCALINLINE OS_THREAD_ID | LEVEL_PINCLIENT::GetCurrentSysId () |
OS_THREAD_ID | LEVEL_PINCLIENT::GetCurrentSysIdById (THREADID tid) |
LOCALVAR KNOB< BOOL > | LEVEL_PINCLIENT::KnobCheckLocks (KNOB_MODE_WRITEONCE,"supported:message","checklocks","1","Check locks are used correctly") |
LOCALFUN VOID | LEVEL_PINCLIENT::InitClientLock () |
VOID | LEVEL_PINCLIENT::CheckPinClientLock (const CHAR *funname) |
VOID | LEVEL_PINCLIENT::PIN_LockClient () |
VOID | LEVEL_PINCLIENT::PIN_UnlockClient () |
BOOL | LEVEL_PINCLIENT::PIN_TryClientLock () |
BOOL | LEVEL_PINCLIENT::PIN_CallerOwnsClientMutex (OS_THREAD_ID osid) |
VOID | LEVEL_PINCLIENT::EnterPinClientMasterMode () |
VOID | LEVEL_PINCLIENT::ExitPinClientMasterMode () |
GLOBALDLLFUN PINCLIENTINT * | LEVEL_PINCLIENT::ClientInt () |
GLOBALDLLCFUN PINCLIENTINT * | LEVEL_PINCLIENT::ClientIntC () |
LOCALFUN BOOL | LEVEL_PINCLIENT::TraceWithFunctionReplacement (TRACE trace) |
LOCALFUN size_t | LEVEL_PINCLIENT::InstFetcher (void *copyBuf, const VOID *address, size_t maxSizeToCopy, EXCEPTION_INFO *pExceptInfo) |
LOCALFUN VOID | LEVEL_PINCLIENT::SetInTraceCallbacks () |
LOCALFUN VOID | LEVEL_PINCLIENT::ReSetInTraceCallbacks () |
BOOL | LEVEL_PINCLIENT::GetInTraceCallbacks () |
VOID | LEVEL_PINCLIENT::CallTraceCallbacks (REGION *region) |
INS | LEVEL_PINCLIENT::TraceFirstIns (ADDRINT currTraceAddr) |
LOCALFUN VOID | LEVEL_PINCLIENT::DoTraceInserted (REGION *region) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallFinis (INT32 code) |
LOCALFUN VOID | LEVEL_PINCLIENT::NotifyOutOfMemory (size_t size) |
LOCALFUN VOID | LEVEL_PINCLIENT::NotifyPrepareForAtExit () |
LOCALFUN ADDRINT PIN_FAST_ANALYSIS_CALL | LEVEL_PINCLIENT::CallMemoryAddrTrans (PIN_MEM_TRANS_INFO *memTransInfo, void *) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallForksBefore (THREADID threadId, const CONTEXT *ctxt) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallForksAfterInParent (THREADID threadId, const CONTEXT *ctxt) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallForksAfterInChild (THREADID threadId, const CONTEXT *ctxt) |
VOID | LEVEL_PINCLIENT::DoDetachs () |
VOID | LEVEL_PINCLIENT::NotifyDetachCompletedJitMode () |
LOCALFUN VOID | LEVEL_PINCLIENT::ImageInitializeFirst () |
LOCALFUN VOID | LEVEL_PINCLIENT::CallApplicationStart () |
VOID | LEVEL_PINCLIENT::DoDetachsProbed () |
VOID | LEVEL_PINCLIENT::CallDetachCompletionCallback () |
VOID | LEVEL_PINCLIENT::DoAttachsProbed () |
LOCALFUN VOID | LEVEL_PINCLIENT::InitializeClientTls (THREADID threadIndex) |
LOCALFUN VOID | LEVEL_PINCLIENT::DestroyClientTls (THREADID threadIndex) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallThreadStarts (THREADID threadIndex, CONTEXT *ctxt, INT32 flags) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallThreadFinis (THREADID threadIndex, const CONTEXT *ctxt, INT32 code) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallContextChanges (THREADID threadIndex, CONTEXT_CHANGE_REASON reason, const CONTEXT *from, CONTEXT *to, INT32 info) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallSyscallEntry (THREADID threadIndex, CONTEXT *ctxt, SYSCALL_STANDARD std) |
LOCALFUN VOID | LEVEL_PINCLIENT::CallSyscallExit (THREADID threadIndex, CONTEXT *ctxt, SYSCALL_STANDARD std) |
LOCALFUN BOOL | LEVEL_PINCLIENT::CallInterceptSignal (THREADID tid, INT32 sig, CONTEXT *ctxt, BOOL hasHandler, const EXCEPTION_INFO *pExceptInfo) |
VOID | LEVEL_PINCLIENT::CallProbesInserted (IMG img) |
VOID | LEVEL_PINCLIENT::PIN_WriteErrorMessage (const char *msg, INT32 type, PIN_ERR_SEVERITY_TYPE severity, INT32 num,...) |
LOCALFUN VOID | LEVEL_PINCLIENT::DoReplaceFunByNativeCall (INS ins, VOID *v) |
LOCALFUN VOID | LEVEL_PINCLIENT::DoInstrumentForFunReplacement (REGION *region, BOOL firstInstIsReplaceable) |
AFUNPTR | LEVEL_PINCLIENT::RTN_Replace (RTN replacedRtn, AFUNPTR replacementFun) |
AFUNPTR | LEVEL_PINCLIENT::RTN_ReplaceSignature (RTN replacedRtn, AFUNPTR replacementFun,...) |
AFUNPTR | LEVEL_PINCLIENT::RTN_ReplaceProbed (RTN replacedRtn, AFUNPTR replacementFun) |
AFUNPTR | LEVEL_PINCLIENT::RTN_ReplaceProbedEx (RTN replacedRtn, PROBE_MODE mode, AFUNPTR replacementFun) |
VOID | LEVEL_PINCLIENT::CheckNotInCallback (THREADID tid, const char *function) |
VOID | LEVEL_PINCLIENT::PIN_CallApplicationFunction (const CONTEXT *ctxt, THREADID tid, CALLINGSTD_TYPE cstype, AFUNPTR origFunPtr,...) |
BOOL | LEVEL_PINCLIENT::INS_IsAddedForFunctionReplacement (INS ins) |
PIN_DEPRECATED_API VOID | LEVEL_PINCLIENT::PIN_RegisterItcAuxCallBackPushFun (AFUNPTR callBackPushFun) |
PIN_DEPRECATED_API VOID | LEVEL_PINCLIENT::RTN_ComplexReplaceWithUninstrumentedRoutine (RTN replacedRtn, AFUNPTR replacementFun) |
PIN_DEPRECATED_API ADDRINT | LEVEL_PINCLIENT::PIN_FindAlternateAppStack () |
LOCALFUN VOID | LEVEL_PINCLIENT::InitializeCallBacks () |
VOID | LEVEL_PINCLIENT::CALLBACK_SetExecutionPriority (PIN_CALLBACK callback, INT32 priority) |
INT32 | LEVEL_PINCLIENT::CALLBACK_GetExecutionPriority (PIN_CALLBACK callback) |
PIN_CALLBACK | LEVEL_PINCLIENT::TRACE_AddInstrumentFunction (TRACE_INSTRUMENT_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::CODECACHE_AddTraceInsertedFunction (TRACE_INSTRUMENT_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::INS_AddInstrumentFunction (INS_INSTRUMENT_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddFiniFunction (FINI_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddFiniUnlockedFunction (FINI_CALLBACK fun, VOID *val) |
VOID | LEVEL_PINCLIENT::PIN_AddFetchFunction (FETCH_CALLBACK fun, VOID *val) |
size_t | LEVEL_PINCLIENT::PIN_FetchCode (void *copyBuf, const VOID *address, size_t maxSize, EXCEPTION_INFO *pExceptInfo) |
VOID | LEVEL_PINCLIENT::PIN_AddOutOfMemoryFunction (OUT_OF_MEMORY_CALLBACK fun, VOID *val) |
VOID | LEVEL_PINCLIENT::PIN_AddPrepareForAtExitFunction (PREPARE_FOR_ATEXIT_CALLBACK fun, VOID *val) |
VOID | LEVEL_PINCLIENT::PIN_AddMemoryAddressTransFunction (MEMORY_ADDR_TRANS_CALLBACK fun, VOID *val) |
MEMORY_ADDR_TRANS_CALLBACK | LEVEL_PINCLIENT::PIN_GetMemoryAddressTransFunction () |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddDetachFunction (DETACH_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddDetachFunctionProbed (DETACH_PROBED_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddThreadStartFunction (THREAD_START_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddThreadAttachProbedFunction (THREAD_ATTACH_PROBED_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddThreadDetachProbedFunction (THREAD_DETACH_PROBED_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddApplicationStartFunction (APPLICATION_START_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddThreadFiniFunction (THREAD_FINI_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddContextChangeFunction (CONTEXT_CHANGE_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddSyscallEntryFunction (SYSCALL_ENTRY_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddSyscallExitFunction (SYSCALL_EXIT_CALLBACK fun, VOID *val) |
BOOL | LEVEL_PINCLIENT::PIN_InterceptSignal (INT32 sig, INTERCEPT_SIGNAL_CALLBACK fun, VOID *val) |
BOOL | LEVEL_PINCLIENT::PIN_UnblockSignal (INT32 sig, BOOL enable) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddProbesInsertedFunction (PROBES_INSERTED_CALLBACK fun, VOID *val) |
PIN_CALLBACK | LEVEL_PINCLIENT::PIN_AddForkFunction (FPOINT point, FORK_CALLBACK fun, VOID *val) |
VOID | LEVEL_PINCLIENT::PIN_RemoveInstrumentation () |
VOID | LEVEL_PINCLIENT::PIN_RemoveFiniFunctions () |
VOID | LEVEL_PINCLIENT::PIN_Detach () |
VOID | LEVEL_PINCLIENT::PIN_DetachProbed () |
VOID | LEVEL_PINCLIENT::PIN_AttachProbed (ATTACH_PROBED_CALLBACK fun, VOID *val) |
LOCALFUN VOID | LEVEL_PINCLIENT::CheckAndUpdateCondInstState (char const *typeName, CONDINSTSTATE &lastState, CONDINSTSTATE currState) |
VOID | LEVEL_PINCLIENT::INS_InsertPredicatedCall (INS ins, IPOINT ipoint, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::INS_InsertCall (INS ins, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::INS_InsertIfCall (INS ins, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::INS_InsertThenCall (INS ins, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::INS_InsertIfPredicatedCall (INS ins, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::INS_InsertThenPredicatedCall (INS ins, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::AInsertCall (INS ins, IPOINT ipoint, PREDICATE pred, COND_CALL_TYPE condCallType, AFUNPTR funptr, va_list ap) |
VOID | LEVEL_PINCLIENT::AInsertVersionCase (INS ins, REG reg, INT32 case_value, ADDRINT version, va_list ap) |
LOCALFUN VOID | LEVEL_PINCLIENT::StartProgram () |
VOID | LEVEL_PINCLIENT::PIN_StartProgram () |
VOID | LEVEL_PINCLIENT::PIN_StartProgramProbed () |
LOCALFUN VOID | LEVEL_PINCLIENT::DumpCharmVersion () |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobPintoolFamily ("pintool","Pin tools switches") |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobGeneralFamily ("supported","General developer switches") |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobBasicFamily ("supported:basic","Basic switches") |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobDebugFamily ("supported:debug","General switches") |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobMessageFamily ("supported:message","Message switches") |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobRegionFamily ("supported:region","Region generation switches") |
LOCALVAR KNOB_COMMENT | LEVEL_PINCLIENT::KnobRegAllocFamily ("supported:regalloc","Register allocation switches") |
LOCALVAR KNOB< string > | LEVEL_PINCLIENT::KnobLogFile (KNOB_MODE_WRITEONCE,"pintool","logfile","pintool.log","The log file path and file name") |
LOCALVAR KNOB< BOOL > | LEVEL_PINCLIENT::KnobUniqueLogFiles (KNOB_MODE_WRITEONCE,"pintool","unique_logfile","0","The log file names will contain the pid") |
LOCALVAR KNOB< BOOL > | LEVEL_PINCLIENT::KnobHelp1 (KNOB_MODE_WRITEONCE,"pintool","help","0","Print help message (Return failure of PIN_Init() in order to allow the tool\ to print help message)") |
LOCALVAR KNOB< BOOL > | LEVEL_PINCLIENT::KnobHelp2 (KNOB_MODE_WRITEONCE,"pintool","h","0","Print help message (Return failure of PIN_Init() in order to allow the tool\ to print help message)") |
KNOB< BOOL > | LEVEL_PINCLIENT::KnobAppendLogFile (KNOB_MODE_WRITEONCE,"supported","append_logfile","0","Append to the end of the log file if it already exists") |
MESSAGE_TYPE | LEVEL_PINCLIENT::MessageTypeLogImage ("log_image","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: image API") |
MESSAGE_TYPE | LEVEL_PINCLIENT::MessageTypeLogSym ("log_sym","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: symbol API") |
MESSAGE_TYPE | LEVEL_PINCLIENT::MessageTypeLogProbe ("log_probe","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: probe information") |
MESSAGE_TYPE | LEVEL_PINCLIENT::MessageTypeLogBuffer ("log_buffer","", false, false, false, true, LOGTYPE_LOGFILE,"pin log: buffering") |
MESSAGE_TYPE | LEVEL_PINCLIENT::MessageTypeLogUnwind ("log_unwind","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: unwind") |
MESSAGE_TYPE | LEVEL_PINCLIENT::MessageTypeLogFetchRtnIns ("log_fetch_rtn_ins","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: fetch rtn ins information") |
PIN_DEPRECATED_API BOOL | LEVEL_PINCLIENT::ParseCommandLine (int xargc, CHAR **xargv) |
LOCALFUN BOOL | LEVEL_PINCLIENT::PIN_ParseCommandLine (int xargc, CHAR **xargv, BOOL standAlone) |
BOOL | LEVEL_PINCLIENT::PIN_Init (INT32 argc, CHAR **argv) |
VOID | LEVEL_PINCLIENT::PIN_SetReplayMode (UINT32 flags) |
TRACE | LEVEL_PINCLIENT::TRACE_Allocate (ADDRINT addr) |
TRACE | LEVEL_PINCLIENT::TRACE_AllocateForProbe (PROBE_TYPE probeType, ADDRINT addr, RTN rtn, USIZE probeSize, BOOL mustReadAtLeastProbesizeBytes) |
ADDRINT | LEVEL_PINCLIENT::TRACE_RelocateOriginalInsAddr (ADDRINT addr) |
VOID | LEVEL_PINCLIENT::TRACE_Deallocate (TRACE trace) |
RTN | LEVEL_PINCLIENT::TRACE_CodeRtn (TRACE trace) |
VOID | LEVEL_PINCLIENT::TRACE_InsertCall (TRACE trace, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::TRACE_InsertIfCall (TRACE trace, IPOINT action, AFUNPTR funptr,...) |
VOID | LEVEL_PINCLIENT::TRACE_InsertThenCall (TRACE trace, IPOINT action, AFUNPTR funptr,...) |
BBL | LEVEL_PINCLIENT::TRACE_BblHead (TRACE trace) |
BBL | LEVEL_PINCLIENT::TRACE_BblTail (TRACE trace) |
BOOL | LEVEL_PINCLIENT::TRACE_Original (TRACE trace) |
ADDRINT | LEVEL_PINCLIENT::TRACE_Address (TRACE trace) |
USIZE | LEVEL_PINCLIENT::TRACE_Size (TRACE trace) |
RTN | LEVEL_PINCLIENT::TRACE_Rtn (TRACE trace) |
BOOL | LEVEL_PINCLIENT::TRACE_HasFallThrough (TRACE trace) |
UINT32 | LEVEL_PINCLIENT::TRACE_NumBbl (TRACE trace) |
UINT32 | LEVEL_PINCLIENT::TRACE_NumIns (TRACE trace) |
USIZE | LEVEL_PINCLIENT::TRACE_StubSize (TRACE trace) |
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) |
BOOL | LEVEL_PINCLIENT::PIN_SupportsProcessorState (PROCESSOR_STATE state) |
BOOL | LEVEL_PINCLIENT::PIN_ContextContainsState (CONTEXT *ctxt, PROCESSOR_STATE state) |
VOID | LEVEL_PINCLIENT::PIN_SetContextRegval (CONTEXT *ctxt, REG reg, const UINT8 *val) |
VOID | LEVEL_PINCLIENT::PIN_GetContextRegval (const CONTEXT *ctxt, REG reg, UINT8 *val) |
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) |
VOID | LEVEL_PINCLIENT::PIN_SetSyscallArgument (CONTEXT *ctxt, SYSCALL_STANDARD std, UINT32 argNum, ADDRINT val) |
ADDRINT | LEVEL_PINCLIENT::PIN_GetSyscallArgument (const CONTEXT *ctxt, SYSCALL_STANDARD std, UINT32 argNum) |
VOID | LEVEL_PINCLIENT::PIN_SetSyscallNumber (CONTEXT *ctxt, SYSCALL_STANDARD std, ADDRINT val) |
ADDRINT | LEVEL_PINCLIENT::PIN_GetSyscallNumber (const CONTEXT *ctxt, SYSCALL_STANDARD std) |
ADDRINT | LEVEL_PINCLIENT::PIN_GetSyscallReturn (const CONTEXT *ctxt, SYSCALL_STANDARD std) |
ADDRINT | LEVEL_PINCLIENT::PIN_GetSyscallErrno (const CONTEXT *ctxt, SYSCALL_STANDARD std) |
VOID | LEVEL_PINCLIENT::PIN_SetPhysicalContextReg (PHYSICAL_CONTEXT *pPhysCtxt, REG reg, ADDRINT val) |
ADDRINT | LEVEL_PINCLIENT::PIN_GetPhysicalContextReg (const PHYSICAL_CONTEXT *pPhysCtxt, REG reg) |
VOID | LEVEL_PINCLIENT::PIN_SetPhysicalContextFPState (PHYSICAL_CONTEXT *pPhysCtxt, const VOID *fpstate) |
VOID | LEVEL_PINCLIENT::PIN_GetPhysicalContextFPState (const PHYSICAL_CONTEXT *pPhysCtxt, VOID *fpstate) |
VOID | LEVEL_PINCLIENT::PIN_RaiseException (const CONTEXT *ctxt, THREADID tid, const EXCEPTION_INFO *pExceptInfo) |
OS_THREAD_ID | LEVEL_PINCLIENT::PIN_ClientFork () |
BOOL | LEVEL_PINCLIENT::PIN_SpawnApplicationThread (const CONTEXT *ctxt) |
LOCALFUN VOID | LEVEL_PINCLIENT::RecordInstructionMutation (INS ins, EXT ext, BOOL noDuplicates) |
PIN_DEPRECATED_API BOOL | LEVEL_PINCLIENT::INS_ChangeMemOpToBaseRegisterAddressMode (INS ins, MEMORY_TYPE mtype, REG newBase) |
PIN_DEPRECATED_API BOOL | LEVEL_PINCLIENT::INS_RewriteMemoryAddressingToBaseRegisterOnly (INS ins, MEMORY_TYPE mtype, REG newBase) |
VOID | LEVEL_PINCLIENT::INS_RewriteMemoryOperand (INS ins, UINT32 memindex, REG reg) |
VOID | LEVEL_PINCLIENT::INS_InsertIndirectJump (INS ins, IPOINT ipoint, REG reg) |
VOID | LEVEL_PINCLIENT::INS_InsertDirectJump (INS ins, IPOINT ipoint, ADDRINT tgt) |
VOID | LEVEL_PINCLIENT::GetVmLock () |
VOID | LEVEL_PINCLIENT::ReleaseVmLock () |
REG | LEVEL_PINCLIENT::PIN_ClaimToolRegister () |
CHAR * | LEVEL_PINCLIENT::PIN_VmFullPath () |
BOOL | LEVEL_PINCLIENT::PIN_IsProcessExiting () |
NORETURN VOID | LEVEL_PINCLIENT::PIN_ExitProcess (INT32 exitCode) |
INT | LEVEL_PINCLIENT::PIN_GetPid () |
VOID | LEVEL_PINCLIENT::INS_Delete (INS ins) |
VOID | LEVEL_PINCLIENT::IARGLIST_AddArguments (IARGLIST args,...) |
IARGLIST | LEVEL_PINCLIENT::IARGLIST_Alloc () |
VOID | LEVEL_PINCLIENT::IARGLIST_Free (IARGLIST args) |
size_t | LEVEL_PINCLIENT::PIN_SafeCopy (VOID *dst, const VOID *src, size_t size) |
size_t | LEVEL_PINCLIENT::PIN_SafeCopyEx (VOID *dst, const VOID *src, size_t size, EXCEPTION_INFO *pExceptInfo) |
VOID | LEVEL_PINCLIENT::Dummy () |
VOID | LEVEL_PINCLIENT::CheckPinInitialized () |
VOID | LEVEL_PINCLIENT::INS_InsertFillBuffer (INS ins, IPOINT action, BUFFER_ID id,...) |
VOID | LEVEL_PINCLIENT::INS_InsertFillBufferPredicated (INS ins, IPOINT action, BUFFER_ID id,...) |
VOID | LEVEL_PINCLIENT::INS_InsertFillBufferThen (INS ins, IPOINT action, BUFFER_ID id,...) |
VOID | LEVEL_PINCLIENT::BBL_InsertFillBuffer (BBL bbl, IPOINT action, BUFFER_ID id,...) |
VOID | LEVEL_PINCLIENT::RTN_InsertFillBuffer (RTN rtn, IPOINT action, BUFFER_ID id,...) |
VOID * | LEVEL_PINCLIENT::CallBufferFullCallback (BUFFER_ID id, THREADID tid, CONTEXT *ctxt, VOID *buf, UINT64 numElts) |
VOID | LEVEL_PINCLIENT::CallAllBufferFullCallbacks (THREADID tid, CONTEXT *ctxt) |
BUFFER_ID | LEVEL_PINCLIENT::PIN_DefineTraceBuffer (size_t recordSize, UINT32 numPages, TRACE_BUFFER_CALLBACK fun, VOID *val) |
VOID * | LEVEL_PINCLIENT::PIN_AllocateBuffer (BUFFER_ID id) |
VOID | LEVEL_PINCLIENT::PIN_DeallocateBuffer (BUFFER_ID id, VOID *buf) |
BOOL | LEVEL_PINCLIENT::PIN_IsActionPending (THREADID tid) |
UINT32 | LEVEL_PINCLIENT::PIN_GetInitialThreadCount () |
VOID * | LEVEL_PINCLIENT::PIN_GetBufferPointer (CONTEXT *const ctxt, BUFFER_ID id) |
BOOL | LEVEL_PINCLIENT::PIN_CheckReadAccess (VOID *addr) |
BOOL | LEVEL_PINCLIENT::PIN_CheckWriteAccess (VOID *addr) |
Variables | |
SECTION_END LOCALTYPE typedef COMPLEX_CALLBACKVAL < INS_INSTRUMENT_CALLBACK > | LEVEL_PINCLIENT::INS_INSTRUMENT_CALLBACKVAL |
LOCALTYPE typedef INS_INSTRUMENT_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::INS_INSTRUMENT_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < TRACE_INSTRUMENT_CALLBACK > | LEVEL_PINCLIENT::TRACE_INSTRUMENT_CALLBACKVAL |
LOCALTYPE typedef TRACE_INSTRUMENT_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::TRACE_INSTRUMENT_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < FINI_CALLBACK > | LEVEL_PINCLIENT::FINI_CALLBACKVAL |
LOCALTYPE typedef FINI_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::FINI_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < FORK_CALLBACK > | LEVEL_PINCLIENT::FORK_CALLBACKVAL |
LOCALTYPE typedef FORK_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::FORK_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < DETACH_CALLBACK > | LEVEL_PINCLIENT::DETACH_CALLBACKVAL |
LOCALTYPE typedef DETACH_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::DETACH_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < DETACH_PROBED_CALLBACK > | LEVEL_PINCLIENT::DETACH_PROBED_CALLBACKVAL |
LOCALTYPE typedef DETACH_PROBED_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::DETACH_PROBED_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < APPLICATION_START_CALLBACK > | LEVEL_PINCLIENT::APPLICATION_START_CALLBACKVAL |
LOCALTYPE typedef APPLICATION_START_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::APPLICATION_START_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < THREAD_START_CALLBACK > | LEVEL_PINCLIENT::THREAD_START_CALLBACKVAL |
LOCALTYPE typedef THREAD_START_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::THREAD_START_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < THREAD_ATTACH_PROBED_CALLBACK > | LEVEL_PINCLIENT::THREAD_ATTACH_PROBED_CALLBACKVAL |
LOCALTYPE typedef THREAD_ATTACH_PROBED_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::THREAD_ATTACH_PROBED_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < THREAD_DETACH_PROBED_CALLBACK > | LEVEL_PINCLIENT::THREAD_DETACH_PROBED_CALLBACKVAL |
LOCALTYPE typedef THREAD_DETACH_PROBED_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::THREAD_DETACH_PROBED_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < THREAD_FINI_CALLBACK > | LEVEL_PINCLIENT::THREAD_FINI_CALLBACKVAL |
LOCALTYPE typedef THREAD_FINI_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::THREAD_FINI_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < CONTEXT_CHANGE_CALLBACK > | LEVEL_PINCLIENT::CONTEXT_CHANGE_CALLBACKVAL |
LOCALTYPE typedef CONTEXT_CHANGE_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::CONTEXT_CHANGE_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < SYSCALL_ENTRY_CALLBACK > | LEVEL_PINCLIENT::SYSCALL_ENTRY_CALLBACKVAL |
LOCALTYPE typedef SYSCALL_ENTRY_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::SYSCALL_ENTRY_CALLBACKFUNS |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < SYSCALL_EXIT_CALLBACK > | LEVEL_PINCLIENT::SYSCALL_EXIT_CALLBACKVAL |
LOCALTYPE typedef SYSCALL_EXIT_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::SYSCALL_EXIT_CALLBACKFUNS |
LOCALTYPE typedef SIMPLE_CALLBACKVAL < INTERCEPT_SIGNAL_CALLBACK > | LEVEL_PINCLIENT::INTERCEPT_SIGNAL_CALLBACKVAL |
LOCALTYPE typedef std::map < int, INTERCEPT_SIGNAL_CALLBACKVAL > | LEVEL_PINCLIENT::INTERCEPT_SIGNAL_MAP |
LOCALTYPE typedef COMPLEX_CALLBACKVAL < PROBES_INSERTED_CALLBACK > | LEVEL_PINCLIENT::PROBES_INSERTED_CALLBACKVAL |
LOCALTYPE typedef PROBES_INSERTED_CALLBACKVAL::FUNS | LEVEL_PINCLIENT::PROBES_INSERTED_CALLBACKFUNS |
LOCALTYPE typedef SIMPLE_CALLBACKVAL < TRACE_BUFFER_CALLBACK > | LEVEL_PINCLIENT::TRACE_BUFFER_CALLBACKVAL |
LOCALTYPE typedef std::map < BUFFER_ID, TRACE_BUFFER_CALLBACKVAL > | LEVEL_PINCLIENT::TRACE_BUFFER_CALLBACK_MAP |
LOCALVAR PINCLIENTINT | LEVEL_PINCLIENT::ClientIntData |
LOCALVAR INS_INSTRUMENT_CALLBACKFUNS | LEVEL_PINCLIENT::insList |
LOCALVAR TRACE_INSTRUMENT_CALLBACKFUNS | LEVEL_PINCLIENT::traceList |
LOCALVAR TRACE_INSTRUMENT_CALLBACKFUNS | LEVEL_PINCLIENT::traceInsertList |
LOCALVAR OUT_OF_MEMORY_CALLBACK | LEVEL_PINCLIENT::outOfMemoryFun = 0 |
LOCALVAR VOID * | LEVEL_PINCLIENT::outOfMemoryVal = 0 |
LOCALVAR PREPARE_FOR_ATEXIT_CALLBACK | LEVEL_PINCLIENT::prepareForAtExitFun = 0 |
LOCALVAR VOID * | LEVEL_PINCLIENT::prepareForAtExitVal = 0 |
LOCALVAR MEMORY_ADDR_TRANS_CALLBACK | LEVEL_PINCLIENT::memoryAddrTransFun = 0 |
LOCALVAR VOID * | LEVEL_PINCLIENT::memoryAddrTransVal = 0 |
LOCALVAR FINI_CALLBACKFUNS | LEVEL_PINCLIENT::finiList |
LOCALVAR FINI_CALLBACKFUNS | LEVEL_PINCLIENT::finiUnlockedList |
LOCALVAR FETCH_CALLBACK | LEVEL_PINCLIENT::fetchCallbackFun = 0 |
LOCALVAR VOID * | LEVEL_PINCLIENT::fetchCallbackVal = 0 |
LOCALVAR FORK_CALLBACKFUNS | LEVEL_PINCLIENT::forkListBefore |
LOCALVAR FORK_CALLBACKFUNS | LEVEL_PINCLIENT::forkListAfterInParent |
LOCALVAR FORK_CALLBACKFUNS | LEVEL_PINCLIENT::forkListAfterInChild |
LOCALVAR DETACH_CALLBACKFUNS | LEVEL_PINCLIENT::detachList |
LOCALVAR DETACH_PROBED_CALLBACKFUNS | LEVEL_PINCLIENT::detachProbedList |
LOCALVAR ATTACH_PROBED_CALLBACK | LEVEL_PINCLIENT::attachProbedFun = 0 |
LOCALVAR VOID * | LEVEL_PINCLIENT::attachProbedVal = 0 |
LOCALVAR APPLICATION_START_CALLBACKFUNS | LEVEL_PINCLIENT::appStartList |
LOCALVAR THREAD_START_CALLBACKFUNS | LEVEL_PINCLIENT::threadStartList |
LOCALVAR THREAD_ATTACH_PROBED_CALLBACKFUNS | LEVEL_PINCLIENT::threadAttachProbedList |
LOCALVAR THREAD_DETACH_PROBED_CALLBACKFUNS | LEVEL_PINCLIENT::threadDetachProbedList |
LOCALVAR THREAD_FINI_CALLBACKFUNS | LEVEL_PINCLIENT::threadFiniList |
LOCALVAR CONTEXT_CHANGE_CALLBACKFUNS | LEVEL_PINCLIENT::contextChangeList |
LOCALVAR SYSCALL_ENTRY_CALLBACKFUNS | LEVEL_PINCLIENT::syscallEntryList |
LOCALVAR SYSCALL_EXIT_CALLBACKFUNS | LEVEL_PINCLIENT::syscallExitList |
LOCALVAR INTERCEPT_SIGNAL_MAP | LEVEL_PINCLIENT::interceptSignalMap |
LOCALVAR PROBES_INSERTED_CALLBACKFUNS | LEVEL_PINCLIENT::probesInsertedList |
LOCALVAR TRACE_BUFFER_CALLBACK_MAP | LEVEL_PINCLIENT::traceBufferCallbackMap |
LOCALVAR set< ADDRINT, less < ADDRINT > > | LEVEL_PINCLIENT::addrReferences |
LOCALVAR UINT32 | LEVEL_PINCLIENT::replayModeFlags |
LOCALVAR INT32 | LEVEL_PINCLIENT::ToolArgc |
LOCALVAR CHAR ** | LEVEL_PINCLIENT::ToolArgv |
LOCALVAR volatile BOOL | LEVEL_PINCLIENT::IsProcessExiting = FALSE |
LOCALVAR OS_THREAD_ID | LEVEL_PINCLIENT::IdOfThreadInFiniCallback = 0 |
LOCALVAR COMPLEX_LOCK < OS_THREAD_ID, 1, INVALID_OS_THREAD_ID > | LEVEL_PINCLIENT::PinClientMutex |
LOCALVAR BOOL | LEVEL_PINCLIENT::inTraceCallbacks = FALSE |
LOCALVAR REPLACEDFUN::LIST | LEVEL_PINCLIENT::replacedFunList |
LOCALVAR CONDINSTSTATE | LEVEL_PINCLIENT::condInstStateForIns = CONDINST_NORMAL |
LOCALVAR PREDICATE | LEVEL_PINCLIENT::insLastIfPredicate = PREDICATE_ALWAYS_TRUE |
LOCALVAR CONDINSTSTATE | LEVEL_PINCLIENT::condInstStateForTrace = CONDINST_NORMAL |
LOCALVAR CONDINSTSTATE | LEVEL_PINCLIENT::condInstStateForBbl = CONDINST_NORMAL |
Client side interface to pin vm.