Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Typedefs | Enumerations | Functions | Variables
opin_client.cpp File Reference
#include "level_base.H"
#include "level_core.H"
#include "level_imgio.H"
#include "level_vmclient.H"
#include "level_pinclient.H"
#include <set>
#include "my_elf.h"
#include <iostream>

Typedefs

typedef VOID(* LEVEL_PINCLIENT::TRACEGENCODE_CALLBACK )(TRACE trace, VOID *v)
 

Enumerations

enum  PROBE_TAG {
  PROBE_TAG_OK,
  PROBE_TAG_BRANCH_TARGET,
  PROBE_TAG_POSSIBLE_UNIDENTIFIED_BRANCH_TARGET,
  PROBE_TAG_BRANCH_PAST_END,
  PROBE_TAG_TOO_SMALL,
  PROBE_TAG_PREV_PROBE,
  PROBE_TAG_RUNTIME_FIXUP,
  PROBE_TAG_RELOCATE,
  PROBE_TAG_NOT_RELOCATABLE,
  PROBE_TAG_UNKNOWN
}
 

Functions

LOCALFUN string LEVEL_PINCLIENT::ProbeTag_String (PROBE_TAG tag)
 
BBL LEVEL_PINCLIENT::TRACE_AddInlineReturnEdg (TRACE trace)
 
BBL LEVEL_PINCLIENT::TRACE_AddInlineCallEdg (TRACE trace)
 
BBL LEVEL_PINCLIENT::TRACE_AddBranchEdg (TRACE trace)
 
BBL LEVEL_PINCLIENT::TRACE_AddFallthroughEdg (TRACE trace)
 
VOID LEVEL_PINCLIENT::TRACE_StraightenControlFlow (TRACE trace)
 
LOCALFUN BOOL LEVEL_PINCLIENT::PIN_InsertProbeImp (ADDRINT src_addr, ADDRINT dst_addr, USIZE probeSize)
 
BOOL LEVEL_PINCLIENT::PIN_InsertProbe (ADDRINT src_addr, ADDRINT dst_addr)
 
VOID LEVEL_PINCLIENT::PIN_RemoveProbe (ADDRINT address)
 
ADDRINT LEVEL_PINCLIENT::TRACE_GenerateCode (TRACE trace)
 
BOOL LEVEL_PINCLIENT::INS_IsPinXfer (INS ins)
 
BOOL LEVEL_PINCLIENT::INS_IsNativeXfer (INS ins)
 
VOID LEVEL_PINCLIENT::INS_SetNativeXfer (INS ins)
 
VOID LEVEL_PINCLIENT::INS_skip_xlate_set (INS ins, BOOL b)
 
VOID LEVEL_PINCLIENT::TRACE_ExitsXferToNative (TRACE trace)
 
VOID LEVEL_PINCLIENT::INS_SetPinXfer (INS ins)
 
BOOL LEVEL_PINCLIENT::INS_IsNativeCall (INS ins)
 
BOOL LEVEL_PINCLIENT::INS_IsXlateCall (INS ins)
 
VOID LEVEL_PINCLIENT::INS_SetXlateCall (INS ins)
 
VOID LEVEL_PINCLIENT::INS_SetNativeCall (INS ins)
 
VOID LEVEL_PINCLIENT::CatchEndInstrumentation (TRACE trace)
 
VOID LEVEL_PINCLIENT::BeginInstrumentedExecution (RTN rtn)
 
BOOL LEVEL_PINCLIENT::PIN_IsProbeMode ()
 
BOOL LEVEL_PINCLIENT::PIN_IsAttaching ()
 
LOCALFUN BOOL LEVEL_PINCLIENT::CheckInsSequenceForProbe (INS ins, UINT32 probe_size)
 
BOOL LEVEL_PINCLIENT::BBL_InvalidForProbe (BBL bbl)
 
LOCALFUN BOOL LEVEL_PINCLIENT::RTN_CheckRtnSizeForProbe (RTN rtn, BOOL checkForPadding, BOOL *didcheckForPadding, UINT32 probe_size)
 
LOCALFUN BOOL LEVEL_PINCLIENT::RTN_ProbeMayOverwriteBranchTarget (RTN rtn, UINT32 probe_size, BOOL *mayOverwriteUnidentifiedBranchTarget)
 
BOOL LEVEL_PINCLIENT::RTN_CheckForPreviousProbe (RTN rtn)
 
LOCALFUN PROBE_TAG LEVEL_PINCLIENT::CheckProbeSafety (RTN rtn, BOOL checkForPadding, BOOL *didcheckForPadding, UINT32 probe_size)
 
LOCALFUN PROBE_TAG LEVEL_PINCLIENT::RTN_IsRelocatable (RTN rtn)
 
VOID LEVEL_PINCLIENT::DeleteRtnCheckHistory ()
 
LOCALFUN BOOL LEVEL_PINCLIENT::RTN_CheckForSafeProbe (RTN rtn, BOOL allowPOP, PROBE_TAG *tagptr, UINT32 *probe_size, PROBE_MODE mode, BOOL checkForPadding)
 
BOOL LEVEL_PINCLIENT::RTN_IsSafeForProbedInsertion (RTN rtn)
 
BOOL LEVEL_PINCLIENT::RTN_IsSafeForProbedInsertionEx (RTN rtn, PROBE_MODE mode)
 
BOOL LEVEL_PINCLIENT::RTN_IsSafeForProbedReplacement (RTN rtn)
 
BOOL LEVEL_PINCLIENT::RTN_IsSafeForProbedReplacementEx (RTN rtn, PROBE_MODE mode)
 
LOCALFUN IARGLIST LEVEL_PINCLIENT::CookArguments (va_list argList, ADDRINT instAddress)
 
LOCALFUN AFUNPTR LEVEL_PINCLIENT::RTN_ReplaceSignatureProbedImpl (RTN orgRtn, AFUNPTR replacement, PROBE_MODE mode, va_list argList)
 
AFUNPTR LEVEL_PINCLIENT::RTN_ReplaceSignatureProbed (RTN replacedRtn, AFUNPTR replacementFun,...)
 
AFUNPTR LEVEL_PINCLIENT::RTN_ReplaceSignatureProbedEx (RTN replacedRtn, PROBE_MODE mode, AFUNPTR replacementFun,...)
 
VOID LEVEL_PINCLIENT::INS_ReplaceSignatureProbed (INS orgIns, AFUNPTR replacementFunptr,...)
 
AFUNPTR LEVEL_PINCLIENT::RTN_InsertProbe (RTN rtn, AFUNPTR replacement, PROBE_MODE mode)
 
LOCALFUN VOID LEVEL_PINCLIENT::RTN_InsertCallProbedImpl (RTN rtn, IPOINT action, AFUNPTR funptr, PROBE_MODE mode, va_list argList)
 
VOID LEVEL_PINCLIENT::RTN_InsertCallProbed (RTN orgRtn, IPOINT action, AFUNPTR funptr,...)
 
VOID LEVEL_PINCLIENT::RTN_InsertCallProbedEx (RTN orgRtn, IPOINT action, PROBE_MODE mode, AFUNPTR funptr,...)
 
LOCALFUN BOOL LEVEL_PINCLIENT::INS_CheckForProbeInsertion (INS ins)
 
BOOL LEVEL_PINCLIENT::PIN_IsSafeForProbedInsertion (ADDRINT addr)
 
VOID LEVEL_PINCLIENT::PIN_InsertCallProbed (ADDRINT addr, AFUNPTR funptr,...)
 
INT32 LEVEL_PINCLIENT::RTN_CodeRangesProbed (RTN rtn, INT32 num, PIN_CODE_RANGE *buffer)
 
VOID LEVEL_PINCLIENT::CompleteProbesInstrumentationForCurrentModule (IMG img)
 
VOID LEVEL_PINCLIENT::Open_Rtn (RTN rtn)
 
VOID LEVEL_PINCLIENT::Close_Rtn (RTN rtn)
 
PROTO LEVEL_PINCLIENT::PROTO_Allocate (PARG_T returnArg, CALLINGSTD_TYPE cstype, const char *name,...)
 
VOID LEVEL_PINCLIENT::PROTO_Free (PROTO proto)
 

Variables

LOCALVAR RTN_CHECK_HISTORY LEVEL_PINCLIENT::rtnHistory