Pin
Classes | Typedefs | Enumerations | Functions
image.cpp File Reference
#include "level_base.H"
#include "level_core.H"
#include "level_imgio.H"
#include "level_vmclient.H"
#include "level_pinclient.H"
#include <map>
#include <limits.h>
#include <iostream>
#include <list>

Classes

class  LEVEL_PINCLIENT::SymbolAddressRange
 
struct  LEVEL_PINCLIENT::SymbolDebugInfo
 

Typedefs

typedef VOID(* LEVEL_PINCLIENT::IMAGECALLBACK) (IMG, VOID *)
 

Enumerations

enum  LEVEL_PINCLIENT::UNDECORATION {
  LEVEL_PINCLIENT::UNDECORATION_COMPLETE,
  LEVEL_PINCLIENT::UNDECORATION_NAME_ONLY
}
 
enum  LEVEL_PINCLIENT::SYMBOL_INFO_MODE {
  LEVEL_PINCLIENT::NO_SYMBOLS = 0,
  LEVEL_PINCLIENT::EXPORT_SYMBOLS = (1<<0),
  LEVEL_PINCLIENT::DEBUG_SYMBOLS = (1<<1),
  LEVEL_PINCLIENT::IFUNC_SYMBOLS = (1<<2),
  LEVEL_PINCLIENT::DEBUG_OR_EXPORT_SYMBOLS = (DEBUG_SYMBOLS | EXPORT_SYMBOLS)
}
 

Functions

IMG LEVEL_PINCLIENT::IMG_Next (IMG img)
 
IMG LEVEL_PINCLIENT::IMG_Prev (IMG img)
 
IMG LEVEL_PINCLIENT::IMG_Invalid ()
 
BOOL LEVEL_PINCLIENT::IMG_Valid (IMG img)
 
SEC LEVEL_PINCLIENT::IMG_SecHead (IMG img)
 
SEC LEVEL_PINCLIENT::IMG_SecTail (IMG img)
 
SYM LEVEL_PINCLIENT::IMG_RegsymHead (IMG img)
 
PIN_DEPRECATED_API ADDRINT LEVEL_PINCLIENT::IMG_Entry (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_EntryAddress (IMG img)
 
BOOL LEVEL_PINCLIENT::IMG_HasProperty (IMG img, IMG_PROPERTY property)
 
const std::string & LEVEL_PINCLIENT::IMG_Name (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_Gp (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_LoadOffset (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_LowAddress (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_HighAddress (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_StartAddress (IMG img)
 
USIZE LEVEL_PINCLIENT::IMG_SizeMapped (IMG img)
 
IMG_TYPE LEVEL_PINCLIENT::IMG_Type (IMG img)
 
BOOL LEVEL_PINCLIENT::IMG_IsMainExecutable (IMG x)
 
BOOL LEVEL_PINCLIENT::IMG_hasLinesData (IMG x)
 
BOOL LEVEL_PINCLIENT::IMG_IsInterpreter (IMG x)
 
BOOL LEVEL_PINCLIENT::IMG_IsStaticExecutable (IMG x)
 
BOOL LEVEL_PINCLIENT::IMG_IsVDSO (IMG img)
 
UINT32 LEVEL_PINCLIENT::IMG_NumRegions (IMG img)
 
ADDRINT LEVEL_PINCLIENT::IMG_RegionHighAddress (IMG img, UINT32 n)
 
ADDRINT LEVEL_PINCLIENT::IMG_RegionLowAddress (IMG img, UINT32 n)
 
IMG LEVEL_PINCLIENT::SEC_Img (SEC sec)
 
SEC LEVEL_PINCLIENT::SEC_Next (SEC sec)
 
SEC LEVEL_PINCLIENT::SEC_Prev (SEC sec)
 
SEC LEVEL_PINCLIENT::SEC_Invalid ()
 
BOOL LEVEL_PINCLIENT::SEC_Valid (SEC x)
 
RTN LEVEL_PINCLIENT::SEC_RtnHead (SEC sec)
 
RTN LEVEL_PINCLIENT::SEC_RtnTail (SEC sec)
 
const std::string & LEVEL_PINCLIENT::SEC_Name (SEC sec)
 
SEC_TYPE LEVEL_PINCLIENT::SEC_Type (SEC sec)
 
BOOL LEVEL_PINCLIENT::SEC_Mapped (SEC sec)
 
const VOID * LEVEL_PINCLIENT::SEC_Data (SEC sec)
 
SEC LEVEL_PINCLIENT::RTN_Sec (RTN x)
 
RTN LEVEL_PINCLIENT::RTN_Next (RTN x)
 
RTN LEVEL_PINCLIENT::RTN_Prev (RTN x)
 
RTN LEVEL_PINCLIENT::RTN_Invalid ()
 
BOOL LEVEL_PINCLIENT::RTN_Valid (RTN x)
 
const std::string & LEVEL_PINCLIENT::RTN_Name (RTN x)
 
BOOL LEVEL_PINCLIENT::RTN_IsArtificial (RTN x)
 
SYM LEVEL_PINCLIENT::RTN_Sym (RTN x)
 
UINT LEVEL_PINCLIENT::RTN_DynamicMethodId (RTN x)
 
AFUNPTR LEVEL_PINCLIENT::RTN_Funptr (RTN x)
 
UINT32 LEVEL_PINCLIENT::RTN_Id (RTN x)
 
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)
 
RTN LEVEL_PINCLIENT::INS_Rtn (INS x)
 
INS LEVEL_PINCLIENT::INS_Next (INS x)
 
INS LEVEL_PINCLIENT::INS_Prev (INS x)
 
INS LEVEL_PINCLIENT::INS_Invalid ()
 
BOOL LEVEL_PINCLIENT::INS_Valid (INS x)
 
ADDRINT LEVEL_PINCLIENT::INS_Address (INS ins)
 
USIZE LEVEL_PINCLIENT::INS_Size (INS ins)
 
PIN_DEPRECATED_API ADDRINT LEVEL_PINCLIENT::INS_DirectBranchOrCallTargetAddress (INS ins)
 
ADDRINT LEVEL_PINCLIENT::INS_DirectControlFlowTargetAddress (INS ins)
 
ADDRINT LEVEL_PINCLIENT::INS_NextAddress (INS ins)
 
SYM LEVEL_PINCLIENT::SYM_Next (SYM x)
 
SYM LEVEL_PINCLIENT::SYM_Prev (SYM x)
 
const std::string & LEVEL_PINCLIENT::SYM_Name (SYM x)
 
SYM LEVEL_PINCLIENT::SYM_Invalid ()
 
BOOL LEVEL_PINCLIENT::SYM_Valid (SYM x)
 
BOOL LEVEL_PINCLIENT::SYM_Dynamic (SYM x)
 
BOOL LEVEL_PINCLIENT::SYM_GeneratedByPin (SYM x)
 
BOOL LEVEL_PINCLIENT::SYM_IFuncImplementation (SYM x)
 
BOOL LEVEL_PINCLIENT::SYM_IFuncResolver (SYM x)
 
ADDRINT LEVEL_PINCLIENT::SYM_Value (SYM x)
 
UINT32 LEVEL_PINCLIENT::SYM_Index (SYM x)
 
ADDRINT LEVEL_PINCLIENT::SYM_Address (SYM x)
 
UINT32 LEVEL_PINCLIENT::IMG_Id (IMG x)
 
VOID * LEVEL_PINCLIENT::IMG_DynamicRawData (IMG img)
 
IMG LEVEL_PINCLIENT::IMG_FindImgById (UINT32 id)
 
IMG LEVEL_PINCLIENT::IMG_FindByAddress (ADDRINT address)
 
PIN_CALLBACK LEVEL_PINCLIENT::RTN_AddInstrumentFunction (RTN_INSTRUMENT_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::IMG_AddInstrumentFunction (IMAGECALLBACK fun, VOID *v)
 
PIN_CALLBACK LEVEL_PINCLIENT::IMG_AddUnloadFunction (IMAGECALLBACK fun, VOID *v)
 
USIZE LEVEL_PINCLIENT::RTN_Range (RTN rtn)
 
USIZE LEVEL_PINCLIENT::RTN_Size (RTN rtn)
 
RTN LEVEL_PINCLIENT::RTN_IFuncResolver (RTN rtn)
 
RTN LEVEL_PINCLIENT::RTN_IFuncImplementation (RTN rtn)
 
IMG LEVEL_PINCLIENT::IMG_Open (const std::string &filename)
 
VOID LEVEL_PINCLIENT::IMG_Close (IMG img)
 
std::string LEVEL_PINCLIENT::RTN_FindNameByAddress (ADDRINT address)
 
RTN LEVEL_PINCLIENT::RTN_FindByAddress (ADDRINT address)
 
RTN LEVEL_PINCLIENT::RTN_FindByName (IMG img, const CHAR *name)
 
VOID LEVEL_PINCLIENT::RTN_Open (RTN rtn)
 
VOID LEVEL_PINCLIENT::RTN_Close (RTN rtn)
 
INS LEVEL_PINCLIENT::RTN_InsHead (RTN rtn)
 
INS LEVEL_PINCLIENT::RTN_InsHeadOnly (RTN rtn)
 
INS LEVEL_PINCLIENT::RTN_InsTail (RTN rtn)
 
UINT32 LEVEL_PINCLIENT::RTN_NumIns (RTN rtn)
 
VOID LEVEL_PINCLIENT::RTN_InsertCall (RTN rtn, IPOINT action, AFUNPTR funptr,...)
 
ADDRINT LEVEL_PINCLIENT::RTN_Address (RTN rtn)
 
RTN LEVEL_PINCLIENT::RTN_CreateAt (ADDRINT address, std::string name)
 
BOOL LEVEL_PINCLIENT::RTN_IsDynamic (RTN rtn)
 
ADDRINT LEVEL_PINCLIENT::SEC_Address (SEC sec)
 
BOOL LEVEL_PINCLIENT::SEC_IsReadable (SEC sec)
 
BOOL LEVEL_PINCLIENT::SEC_IsWriteable (SEC sec)
 
BOOL LEVEL_PINCLIENT::SEC_IsExecutable (SEC sec)
 
USIZE LEVEL_PINCLIENT::SEC_Size (SEC sec)
 
BOOL LEVEL_PINCLIENT::BBL_Original (BBL bbl)
 
ADDRINT LEVEL_PINCLIENT::BBL_Address (BBL bbl)
 
USIZE LEVEL_PINCLIENT::BBL_Size (BBL bbl)
 
IMG LEVEL_PINCLIENT::APP_ImgHead ()
 
IMG LEVEL_PINCLIENT::APP_ImgTail ()
 
std::string LEVEL_PINCLIENT::PIN_UndecorateSymbolName (const std::string &symbolName, UNDECORATION style)
 

Detailed Description

Static model for instrumenting IMG's once they are loaded into memory.