CCTLib
Calling-context and data-object attribution library for Intel Pin
PinCCTLib Namespace Reference

Classes

struct  TraceNode
 
struct  SerializedTraceNode
 
struct  TraceSplay
 
struct  IPNode
 
struct  ThreadData
 
struct  ModuleInfo
 
struct  RtnInfo
 
struct  CCT_LIB_GLOBAL_STATE
 
struct  NormalizedIP
 
struct  NewIPNode
 
struct  fileid
 

Typedefs

using ContextHandle_t = uint32_t
 
using DataHandle_t = struct DataHandle_t { uint8_t objectType
 
using Context = struct Context { std::string functionName
 
using HPCRunCCT_t = struct HPCRunCCT_t { ContextHandle_t ctxtHandle1
 
using IsInterestingInsFptr = BOOL(*)(INS)
 
using CCTLibInstrumentInsCallback = VOID(*)(INS, VOID *, const uint32_t)
 
using QNode = struct QNode { struct QNode *volatile next
 
using size_t = uint16_t
 
using MetricFlags_Ty_t = enum { MetricFlags_Ty_NULL=0, MetricFlags_Ty_Raw, MetricFlags_Ty_Final, MetricFlags_Ty_Derived }
 
using MetricFlags_ValTy_t = enum { MetricFlags_ValTy_NULL=0, MetricFlags_ValTy_Incl, MetricFlags_ValTy_Excl }
 
using MetricFlags_ValFmt_t = enum { MetricFlags_ValFmt_NULL=0, MetricFlags_ValFmt_Int, MetricFlags_ValFmt_Real, }
 
using epoch_flags_bitfield = struct epoch_flags_bitfield { bool isLogicalUnwind :1
 
using epoch_flags_t = union epoch_flags_t { epoch_flags_bitfield fields
 
using metric_desc_properties_t = struct metric_desc_properties_t { unsigned time :1
 
using hpcrun_metricFlags_fields = struct hpcrun_metricFlags_fields { MetricFlags_Ty_t ty :8
 
using hpcrun_metricFlags_t = union hpcrun_metricFlags_t { hpcrun_metricFlags_fields fields
 
using metric_desc_t = struct metric_desc_t { char *name
 
using metric_set_t = struct metric_set_t
 
using spinlock_t = struct spinlock_s { volatile long thelock
 

Enumerations

enum  ObjectTypeEnum { STACK_OBJECT , DYNAMIC_OBJECT , STATIC_OBJECT , UNKNOWN_OBJECT }
 
enum  CCTLibUsageMode { CCT_LIB_MODE_COLLECTION = 1 , CCT_LIB_MODE_POSTMORTEM = 2 }
 

Functions

BOOL InterestingInsNone (INS ins)
 
BOOL InterestingInsAll (INS ins)
 
BOOL InterestingInsMemoryAccess (INS ins)
 
int PinCCTLibInit (IsInterestingInsFptr isInterestingIns, FILE *logFile, CCTLibInstrumentInsCallback userCallback, VOID *userCallbackArg, BOOL doDataCentric=false)
 
int PinCCTLibInitForPostmortemAnalysis (FILE *logFile, const std::string &serializedFilesDirectory)
 
ContextHandle_t GetContextHandle (const THREADID id, const uint32_t slot)
 
DataHandle_t GetDataObjectHandle (VOID *address, const THREADID threadId)
 
char * GetStringFromStringPool (const uint32_t index)
 
VOID PrintFullCallingContext (const ContextHandle_t ctxtHandle)
 
VOID GetFullCallingContext (const ContextHandle_t curCtxtHndle, std::vector< Context > &contextVec)
 
void SerializeMetadata (const std::string &directoryForSerializationFiles="")
 
void DottifyAllCCTs ()
 
bool HaveSameCallerPrefix (ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
bool IsSameSourceLine (ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
ContextHandle_t GetTraceStartHandle (ContextHandle_t ctxtHandle)
 
void AppendLoadModulesToStream (std::iostream &ios)
 
void LogContexts (std::iostream &ios, ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
int init_hpcrun_format (int argc, char *argv[], void(*mergeFunc)(void *des, void *src)=nullptr, uint64_t(*computeMetricVal)(void *metric)=nullptr, bool skip=false)
 
int hpcrun_create_metric (const char *name)
 
int newCCT_hpcrun_write (THREADID threadid)
 
int newCCT_hpcrun_build_cct (std::vector< HPCRunCCT_t * > &OldNodes, THREADID threadid)
 
int newCCT_hpcrun_selection_write (THREADID threadid)
 
void GetParentIPs (ContextHandle_t ctxtHandle, std::vector< ADDRINT > &parentIPs)
 
static ADDRINT GetIPFromInfo (ContextHandle_t)
 
static void SetIPFromInfo (ContextHandle_t ctxtHndle, ADDRINT val)
 
static const string & GetModulePathFromInfo (IPNode *ipNode)
 
static void GetLineFromInfo (const ADDRINT &ip, uint32_t &lineNo, string &filePath)
 
static bool IsValidIP (ADDRINT ip)
 
static void SerializeCCTNode (TraceNode *traceNode, FILE *const fp)
 
static void SegvHandler (int)
 
BOOL IsCallOrRetIns (INS ins)
 
ADDRINT GetNextTraceKey ()
 
static ThreadDataCCTLibGetTLS (const THREADID threadId)
 
void DumpCallStack (THREADID id, uint32_t slot)
 
void DumpCallStackEasy ()
 
static void UpdateCurTraceAndIp (ThreadData *tData, TraceNode *const trace, ContextHandle_t const ctxtHndle)
 
static void UpdateCurTraceAndIp (ThreadData *tData, TraceNode *const trace)
 
static void UpdateCurTraceOnly (ThreadData *tData, TraceNode *const trace)
 
static VOID CaptureSigSetJmpCtxt (ADDRINT buf, THREADID threadId)
 
static VOID HoldLongJmpBuf (ADDRINT buf, THREADID threadId)
 
static VOID RestoreSigLongJmpCtxt (THREADID threadId)
 
static int GetInstructionLength (ADDRINT ip)
 
static bool IsCallInstruction (ADDRINT ip)
 
static bool TraceIsInAddressRange (TraceNode *trace, ADDRINT lo, ADDRINT hi)
 
static TraceNodeFindHandlerFrameForLandingPad (ADDRINT landingPadIp, ADDRINT *outHandlerLo, ADDRINT *outHandlerHi, ThreadData *tData)
 
static VOID CaptureLandingPadTarget (VOID *, ADDRINT landingPadIp, THREADID threadId)
 
VOID TakeLock ()
 
VOID ReleaseLock ()
 
static void ThreadCreatePoint (THREADID threadId)
 
static void ThreadCapturePoint (ThreadData *tdata)
 
static ContextHandle_t GetNextIPVecBuffer (uint32_t num)
 
static uint32_t GetNextStringPoolIndex (char *name)
 
static void CCTLibInitThreadData (ThreadData *const tdata, CONTEXT *ctxt, THREADID threadId)
 
static VOID CCTLibThreadStart (THREADID threadid, CONTEXT *ctxt, INT32 flags, VOID *v)
 
static const RtnInfoGetOrClassifyRoutine (RTN rtn)
 
static VOID SetCallInitFlag (uint32_t slot, THREADID threadId)
 
static VOID GoUpCallChain (THREADID threadId)
 
static VOID MaybeGoUpCallChain (ADDRINT retTarget, const ADDRINT *returnAddrs, uint32_t n, THREADID threadId)
 
static VOID RememberSlotNoInTLS (uint32_t slot, THREADID threadId)
 
static uint32_t GetNumInterestingInsInTrace (const TRACE &trace, IsInterestingInsFptr isInterestingIns)
 
static VOID CCTLibInstrumentImageLoad (IMG img, VOID *v)
 
static VOID PopulateIPReverseMapAndAccountTraceInstructions (TRACE trace, uint32_t traceKey, uint32_t numInterestingInstInTrace, IsInterestingInsFptr isInterestingIns, const RtnInfo *rinfo)
 
static struct TraceSplaysplay (struct TraceSplay *root, ADDRINT ip)
 
static void InstrumentTraceEntry (uint32_t traceKey, uint32_t numInterestingInstInTrace, ADDRINT traceFirstIp, THREADID threadId)
 
static void CCTLibInstrumentTrace (TRACE trace, void *isInterestingIns)
 
static void OnSig (THREADID threadId, CONTEXT_CHANGE_REASON reason, const CONTEXT *ctxtFrom, CONTEXT *ctxtTo, INT32 sig, VOID *v)
 
IPNodeGetPINCCTCurrentContext (THREADID id)
 
IPNodeGetPINCCTCurrentContextWithSlot (THREADID id, uint32_t slot)
 
ContextHandle_t GetPINCCT32BitContextIndex (IPNode *node)
 
IPNodeGetPINCCTContextFrom32BitIndex (ContextHandle_t index)
 
static VOID CCTLibFini (INT32 code, VOID *v)
 
static void VisitAllNodesOfSplayTree (TraceSplay *node, FILE *const fp)
 
static TraceNodeDeserializeCCTNode (ContextHandle_t parentCtxtHndl, FILE *const fp)
 
static void SerializeAllCCTs ()
 
static bool IsDirectory (const char *path)
 
static bool endsWithExtn (const string &base, const string &ext)
 
static void GetAllFilesInDirWithExtn (const string &root, const string &ext, vector< string > &ret)
 
static void DeserializeAllCCTs ()
 
static void DottifyCCTNode (TraceNode *traceNode, uint64_t parentDotId, FILE *const fp)
 
static void ListAllNodesOfSplayTree (TraceSplay *node, vector< TraceNode * > &childTraces)
 
static void SerializeMouleInfo ()
 
static void DeserializeMouleInfo ()
 
static void SerializeTraceIps ()
 
static void DeserializeTraceIps ()
 
void DeserializeMetadata (const string &directoryForSerializationFiles)
 
size_t getPeakRSS ()
 Returns the peak (maximum so far) resident set size (physical memory use) measured in KB, or zero if the value cannot be determined on this OS. More...
 
static void PrintStats ()
 
VOID Fini (INT32 code, VOID *v)
 
static void GetDecodedInstFromIP (ADDRINT ip)
 
static bool IsValidPLTSignature (const ADDRINT &ip)
 
static int IsARootIPNode (ContextHandle_t curCtxtHndle)
 
static VOID GetFullCallingContextInSitu (ContextHandle_t curCtxtHndle, vector< Context > &contextVec)
 
static VOID GetFullCallingContextPostmortem (ContextHandle_t curCtxtHndle, vector< Context > &contextVec)
 
void AppendLoadModulesToStream (iostream &ios)
 
static void GetNormalizedIpVectorClippedToMainOneAheadIp (vector< NormalizedIP > &ctxt, ContextHandle_t curCtxtHndle)
 
void LogContexts (iostream &ios, ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
static void InitBuffers ()
 
static void InitLogFile (FILE *logFile)
 
static void InitMapFilePrefix ()
 
static void InitSegHandler ()
 
static void InitXED ()
 
static void InitShadowSpaceForDataCentric (VOID *addr, uint32_t accessLen, DataHandle_t *initializer)
 
static VOID CaptureMallocSize (size_t arg0, THREADID threadId)
 
static VOID CaptureCallocSize (size_t arg0, size_t arg1, THREADID threadId)
 
static void CaptureFree (void *ptr, THREADID threadId)
 
static VOID CaptureReallocSize (void *ptr, size_t arg1, THREADID threadId)
 
static VOID CaptureMallocPointer (void *ptr, THREADID threadId)
 
static void compute_static_var (char *filename, IMG img)
 
static VOID DeleteStaticVar (IMG img, VOID *v)
 
static VOID ComputeVarBounds (IMG img, VOID *v)
 
VOID CCTLibImage (IMG img, VOID *v)
 
static void InitDataCentric ()
 
VOID CCTLibAppStartNotification (void *v)
 
int hpcfmt_str_fwrite (const char *str, FILE *outfs)
 
int hpcrun_fmt_hdrwrite (FILE *fs)
 
int hpcrun_fmt_hdr_fwrite (FILE *fs, const char *arg1, const char *arg2)
 
int hpcrun_open_profile_file (int thread, const char *fileName)
 
static int hpcrun_open_file (int thread, const char *suffix, int flags, const char *fileName)
 
int fputs (const char *__restrict __s, FILE *__restrict __stream)
 
int hpcrun_fmt_loadmap_fwrite (FILE *fs, const std::string &filename)
 
int hpcrun_fmt_epochHdr_fwrite (FILE *fs, epoch_flags_t flags, uint64_t measurementGranularity, uint32_t raToCallsiteOfst)
 
static void hpcrun_files_init ()
 
uint OSUtil_pid ()
 
const char * OSUtil_jobid ()
 
long OSUtil_hostid ()
 
void hpcrun_set_metric_info_w_fn (int metric_id, const char *name, MetricFlags_ValFmt_t valFmt, size_t period, FILE *fs)
 
size_t hpcio_be2_fwrite (const uint16_t *val, FILE *fs)
 
size_t hpcio_be4_fwrite (const uint32_t *val, FILE *fs)
 
size_t hpcio_be8_fwrite (const uint64_t *val, FILE *fs)
 
size_t hpcio_beX_fwrite (uint8_t *val, size_t size, FILE *fs)
 
NewIPNodeconstructIPNode (NewIPNode *parentIP, IPNode *oldIPNode, uint32_t parentID, uint64_t *nodeCount)
 
void tranverseIPs (NewIPNode *curIPNode, TraceSplay *childCtxtStartIdx, uint64_t *nodeCount)
 
NewIPNodefindSameIP (vector< NewIPNode * > nodes, IPNode *node)
 
void mergeIP (NewIPNode *prev, IPNode *cur, uint64_t *nodeCount)
 
uint32_t GetID ()
 
void IPNode_fwrite (NewIPNode *node, FILE *fs)
 
void tranverseNewCCT (vector< NewIPNode * > nodes, FILE *fs)
 
static int hpcfmt_int2_fwrite (uint16_t val, FILE *outfs)
 
static int hpcfmt_int4_fwrite (uint32_t val, FILE *outfs)
 
static int hpcfmt_int8_fwrite (uint64_t val, FILE *outfs)
 
static int hpcfmt_intX_fwrite (uint8_t *val, size_t size, FILE *outfs)
 
int hpcio_fclose (FILE *fs)
 
static int hpcrun_files_next_id (struct fileid *id)
 
static int unsigned long fetch_and_store (volatile long *addr, long newval)
 
static void spinlock_unlock (spinlock_t *l)
 
static void spinlock_lock (spinlock_t *l)
 
void hpcrun_set_metric_info_w_fn (int metric_id, const char *name, size_t period, FILE *fs)
 
FILE * lazy_open_data_file (int tID, std::string *filename)
 
static void findMain (IPNode *curIPNode, TraceSplay *childCtxtStartIdx, IPNode **mainNode)
 
NewIPNodefindSameIPbyIP (vector< NewIPNode * > nodes, ADDRINT address)
 
NewIPNodeconstructIPNodeFromIP (NewIPNode *parentIP, ADDRINT address, uint64_t *nodeCount)
 
void hpcrun_insert_path (NewIPNode *root, HPCRunCCT_t *HPCRunNode, uint64_t *nodeCount)
 

Variables

union {
   ContextHandle_t   PinCCTLib::pathHandle
 
   uint32_t   PinCCTLib::symName
 
}; 
 
std::string filePath
 
std::string disassembly
 
ContextHandle_t ctxtHandle
 
uint32_t lineNo
 
ADDRINT ip
 
ContextHandle_t ctxtHandle2
 
uint64_t metric
 
int metric_id
 
union {
   struct {
      volatile bool   PinCCTLib::locked: 1
 
      volatile bool   PinCCTLib::predecessorWasWriter: 1
 
   } 
 
   volatile uint8_t   PinCCTLib::status
 
}; 
 
struct PinCCTLib::CCT_LIB_GLOBAL_STATE GLOBAL_STATE
 
static uint32_t NO_MORE_TRACE_NODES_IN_SPLAY_TREE = UINT_MAX
 
static uint64_t gDotId
 
static ConcurrentShadowMemory< DataHandle_tsm
 
uint64_t unused
 
uint64_t bits
 
unsigned cycles
 
MetricFlags_ValTy_t valTy
 
MetricFlags_ValFmt_t valFmt
 
uint8_t unused0
 
uint16_t partner
 
uint8_t show
 
uint8_t showPercent
 
uint64_t unused1
 
uint64_t bits_big [2]
 
char * description
 
hpcrun_metricFlags_t flags
 
uint64_t period
 
metric_desc_properties_t properties
 
char * formula
 
char * format
 
bool is_frequency_metric
 
const metric_desc_t metricDesc_NULL
 
const hpcrun_metricFlags_t hpcrun_metricFlags_NULL
 
static epoch_flags_t epoch_flags
 
static const uint64_t default_measurement_granularity = 1
 
static const uint32_t default_ra_to_callsite_distance = 1
 
static spinlock_t files_lock = SPINLOCK_UNLOCKED
 
static pid_t mypid = 0
 
static struct fileid earlyid
 
static struct fileid lateid
 
static int log_done = 0
 
static int log_rename_done = 0
 
static int log_rename_ret = 0
 
std::string dirName
 
std::string * filename
 
static const char HPCRUN_FMT_Magic [] = "HPCRUN-profile____"
 
static const int HPCRUN_FMT_MagicLen = (sizeof(HPCRUN_FMT_Magic) - 1)
 
static const char HPCRUN_FMT_Endian [] = "b"
 
static const int HPCRUN_FMT_EndianLen = (sizeof(HPCRUN_FMT_Endian) - 1)
 
static const char HPCRUN_ProfileFnmSfx [] = "hpcrun"
 
static const char HPCRUN_FMT_Version [] = "02.00"
 
static const char HPCRUN_FMT_VersionLen = (sizeof(HPCRUN_FMT_Version) - 1)
 
static const char HPCRUN_FMT_EpochTag [] = "EPOCH___"
 
static const int HPCRUN_FMT_EpochTagLen = (sizeof(HPCRUN_FMT_EpochTag) - 1)
 
const uint bufSZ = 32
 

Typedef Documentation

◆ CCTLibInstrumentInsCallback

using PinCCTLib::CCTLibInstrumentInsCallback = typedef VOID (*)(INS, VOID*, const uint32_t)

Definition at line 68 of file cctlib.H.

◆ Context

using PinCCTLib::Context = typedef struct Context { std::string functionName

Definition at line 48 of file cctlib.H.

◆ ContextHandle_t

using PinCCTLib::ContextHandle_t = typedef uint32_t

Definition at line 22 of file cctlib.H.

◆ DataHandle_t

using PinCCTLib::DataHandle_t = typedef struct DataHandle_t { uint8_t objectType

Definition at line 31 of file cctlib.H.

◆ epoch_flags_bitfield

using PinCCTLib::epoch_flags_bitfield = typedef struct epoch_flags_bitfield { bool isLogicalUnwind : 1

Definition at line 3384 of file cctlib.cpp.

◆ epoch_flags_t

Definition at line 3390 of file cctlib.cpp.

◆ hpcrun_metricFlags_fields

Definition at line 3402 of file cctlib.cpp.

◆ hpcrun_metricFlags_t

Definition at line 3414 of file cctlib.cpp.

◆ HPCRunCCT_t

using PinCCTLib::HPCRunCCT_t = typedef struct HPCRunCCT_t { ContextHandle_t ctxtHandle1

Definition at line 57 of file cctlib.H.

◆ IsInterestingInsFptr

using PinCCTLib::IsInterestingInsFptr = typedef BOOL (*)(INS)

Definition at line 65 of file cctlib.H.

◆ metric_desc_properties_t

using PinCCTLib::metric_desc_properties_t = typedef struct metric_desc_properties_t { unsigned time : 1

Definition at line 3396 of file cctlib.cpp.

◆ metric_desc_t

using PinCCTLib::metric_desc_t = typedef struct metric_desc_t { char* name

Definition at line 3420 of file cctlib.cpp.

◆ metric_set_t

using PinCCTLib::metric_set_t = typedef struct metric_set_t

Definition at line 3434 of file cctlib.cpp.

◆ MetricFlags_Ty_t

using PinCCTLib::MetricFlags_Ty_t = typedef enum { MetricFlags_Ty_NULL = 0, MetricFlags_Ty_Raw, MetricFlags_Ty_Final, MetricFlags_Ty_Derived }

Definition at line 3362 of file cctlib.cpp.

◆ MetricFlags_ValFmt_t

using PinCCTLib::MetricFlags_ValFmt_t = typedef enum { MetricFlags_ValFmt_NULL = 0, MetricFlags_ValFmt_Int, MetricFlags_ValFmt_Real, }

Definition at line 3377 of file cctlib.cpp.

◆ MetricFlags_ValTy_t

using PinCCTLib::MetricFlags_ValTy_t = typedef enum { MetricFlags_ValTy_NULL = 0, MetricFlags_ValTy_Incl, MetricFlags_ValTy_Excl }

Definition at line 3370 of file cctlib.cpp.

◆ QNode

using PinCCTLib::QNode = typedef struct QNode { struct QNode* volatile next

Definition at line 223 of file cctlib.cpp.

◆ size_t

using PinCCTLib::size_t = typedef uint16_t

Definition at line 3359 of file cctlib.cpp.

◆ spinlock_t

using PinCCTLib::spinlock_t = typedef struct spinlock_s { volatile long thelock

Definition at line 3437 of file cctlib.cpp.

Enumeration Type Documentation

◆ CCTLibUsageMode

Enumerator
CCT_LIB_MODE_COLLECTION 
CCT_LIB_MODE_POSTMORTEM 

Definition at line 176 of file cctlib.cpp.

◆ ObjectTypeEnum

Enumerator
STACK_OBJECT 
DYNAMIC_OBJECT 
STATIC_OBJECT 
UNKNOWN_OBJECT 

Definition at line 25 of file cctlib.H.

Function Documentation

◆ AppendLoadModulesToStream() [1/2]

void PinCCTLib::AppendLoadModulesToStream ( iostream &  ios)

Definition at line 2359 of file cctlib.cpp.

References GLOBAL_STATE, and PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap.

◆ AppendLoadModulesToStream() [2/2]

void PinCCTLib::AppendLoadModulesToStream ( std::iostream &  ios)

Referenced by ImageUnload().

◆ CaptureCallocSize()

static VOID PinCCTLib::CaptureCallocSize ( size_t  arg0,
size_t  arg1,
THREADID  threadId 
)
static

◆ CaptureFree()

static void PinCCTLib::CaptureFree ( void *  ptr,
THREADID  threadId 
)
static

Definition at line 2777 of file cctlib.cpp.

References DYNAMIC_OBJECT.

Referenced by CaptureReallocSize(), and CCTLibImage().

◆ CaptureLandingPadTarget()

static VOID PinCCTLib::CaptureLandingPadTarget ( VOID *  ,
ADDRINT  landingPadIp,
THREADID  threadId 
)
static

◆ CaptureMallocPointer()

static VOID PinCCTLib::CaptureMallocPointer ( void *  ptr,
THREADID  threadId 
)
static

◆ CaptureMallocSize()

static VOID PinCCTLib::CaptureMallocSize ( size_t  arg0,
THREADID  threadId 
)
static

◆ CaptureReallocSize()

static VOID PinCCTLib::CaptureReallocSize ( void *  ptr,
size_t  arg1,
THREADID  threadId 
)
static

◆ CaptureSigSetJmpCtxt()

static VOID PinCCTLib::CaptureSigSetJmpCtxt ( ADDRINT  buf,
THREADID  threadId 
)
inlinestatic

◆ CCTLibAppStartNotification()

VOID PinCCTLib::CCTLibAppStartNotification ( void *  v)

Definition at line 3126 of file cctlib.cpp.

References PinCCTLib::CCT_LIB_GLOBAL_STATE::applicationStarted, and GLOBAL_STATE.

Referenced by PinCCTLibInit().

◆ CCTLibFini()

static VOID PinCCTLib::CCTLibFini ( INT32  code,
VOID *  v 
)
static

Definition at line 1384 of file cctlib.cpp.

Referenced by PinCCTLibInit().

◆ CCTLibGetTLS()

◆ CCTLibImage()

◆ CCTLibInitThreadData()

◆ CCTLibInstrumentImageLoad()

static VOID PinCCTLib::CCTLibInstrumentImageLoad ( IMG  img,
VOID *  v 
)
inlinestatic

◆ CCTLibInstrumentTrace()

static void PinCCTLib::CCTLibInstrumentTrace ( TRACE  trace,
void *  isInterestingIns 
)
static

◆ CCTLibThreadStart()

static VOID PinCCTLib::CCTLibThreadStart ( THREADID  threadid,
CONTEXT *  ctxt,
INT32  flags,
VOID *  v 
)
static

◆ compute_static_var()

static void PinCCTLib::compute_static_var ( char *  filename,
IMG  img 
)
static

◆ ComputeVarBounds()

static VOID PinCCTLib::ComputeVarBounds ( IMG  img,
VOID *  v 
)
static

Definition at line 2894 of file cctlib.cpp.

References compute_static_var(), and filename.

Referenced by InitDataCentric().

◆ constructIPNode()

◆ constructIPNodeFromIP()

◆ DeleteStaticVar()

static VOID PinCCTLib::DeleteStaticVar ( IMG  img,
VOID *  v 
)
static

Definition at line 2886 of file cctlib.cpp.

References GLOBAL_STATE.

Referenced by InitDataCentric().

◆ DeserializeAllCCTs()

◆ DeserializeCCTNode()

◆ DeserializeMetadata()

void PinCCTLib::DeserializeMetadata ( const string &  directoryForSerializationFiles)

◆ DeserializeMouleInfo()

◆ DeserializeTraceIps()

◆ DottifyAllCCTs()

◆ DottifyCCTNode()

static void PinCCTLib::DottifyCCTNode ( TraceNode traceNode,
uint64_t  parentDotId,
FILE *const  fp 
)
static

◆ DumpCallStack()

void PinCCTLib::DumpCallStack ( THREADID  id,
uint32_t  slot 
)

◆ DumpCallStackEasy()

void PinCCTLib::DumpCallStackEasy ( )

Definition at line 515 of file cctlib.cpp.

References DumpCallStack().

◆ endsWithExtn()

static bool PinCCTLib::endsWithExtn ( const string &  base,
const string &  ext 
)
static

Definition at line 1582 of file cctlib.cpp.

Referenced by GetAllFilesInDirWithExtn().

◆ fetch_and_store()

static int unsigned long PinCCTLib::fetch_and_store ( volatile long *  addr,
long  newval 
)
static

Definition at line 3727 of file cctlib.cpp.

References read_modify_write.

Referenced by spinlock_lock().

◆ FindHandlerFrameForLandingPad()

static TraceNode* PinCCTLib::FindHandlerFrameForLandingPad ( ADDRINT  landingPadIp,
ADDRINT *  outHandlerLo,
ADDRINT *  outHandlerHi,
ThreadData tData 
)
static

◆ findMain()

◆ findSameIP()

NewIPNode * PinCCTLib::findSameIP ( vector< NewIPNode * >  nodes,
IPNode node 
)

Definition at line 4057 of file cctlib.cpp.

References address, GET_CONTEXT_HANDLE_FROM_IP_NODE_CHECKED, and GetIPFromInfo().

Referenced by tranverseIPs().

◆ findSameIPbyIP()

NewIPNode* PinCCTLib::findSameIPbyIP ( vector< NewIPNode * >  nodes,
ADDRINT  address 
)

Definition at line 4170 of file cctlib.cpp.

References address.

Referenced by hpcrun_insert_path().

◆ Fini()

VOID PinCCTLib::Fini ( INT32  code,
VOID *  v 
)

Definition at line 1944 of file cctlib.cpp.

References PrintStats().

Referenced by PinCCTLibInit().

◆ fputs()

int PinCCTLib::fputs ( const char *__restrict  __s,
FILE *__restrict  __stream 
)

◆ GetAllFilesInDirWithExtn()

static void PinCCTLib::GetAllFilesInDirWithExtn ( const string &  root,
const string &  ext,
vector< string > &  ret 
)
static

Definition at line 1590 of file cctlib.cpp.

References endsWithExtn(), and IsDirectory().

Referenced by DeserializeAllCCTs().

◆ GetContextHandle()

◆ GetDataObjectHandle()

DataHandle_t PinCCTLib::GetDataObjectHandle ( VOID *  address,
const THREADID  threadId 
)

◆ GetDecodedInstFromIP()

static void PinCCTLib::GetDecodedInstFromIP ( ADDRINT  ip)
static

◆ GetFullCallingContext()

VOID PinCCTLib::GetFullCallingContext ( const ContextHandle_t  curCtxtHndle,
std::vector< Context > &  contextVec 
)

◆ GetFullCallingContextInSitu()

◆ GetFullCallingContextPostmortem()

◆ GetID()

uint32_t PinCCTLib::GetID ( )

Definition at line 4091 of file cctlib.cpp.

Referenced by constructIPNode(), and constructIPNodeFromIP().

◆ GetInstructionLength()

static int PinCCTLib::GetInstructionLength ( ADDRINT  ip)
static

◆ GetIPFromInfo()

◆ GetLineFromInfo()

static void PinCCTLib::GetLineFromInfo ( const ADDRINT &  ip,
uint32_t &  lineNo,
string &  filePath 
)
inlinestatic

Definition at line 1987 of file cctlib.cpp.

References filePath, ip, and lineNo.

Referenced by GetFullCallingContextInSitu().

◆ GetModulePathFromInfo()

static const string & PinCCTLib::GetModulePathFromInfo ( IPNode ipNode)
inlinestatic

◆ GetNextIPVecBuffer()

◆ GetNextStringPoolIndex()

◆ GetNextTraceKey()

ADDRINT PinCCTLib::GetNextTraceKey ( )

Definition at line 478 of file cctlib.cpp.

References PIN_ExitProcess.

Referenced by CCTLibInstrumentTrace().

◆ GetNormalizedIpVectorClippedToMainOneAheadIp()

◆ GetNumInterestingInsInTrace()

static uint32_t PinCCTLib::GetNumInterestingInsInTrace ( const TRACE &  trace,
IsInterestingInsFptr  isInterestingIns 
)
inlinestatic

Definition at line 1043 of file cctlib.cpp.

References IsCallOrRetIns().

Referenced by CCTLibInstrumentTrace().

◆ GetOrClassifyRoutine()

◆ GetParentIPs()

VOID PinCCTLib::GetParentIPs ( ContextHandle_t  ctxtHandle,
std::vector< ADDRINT > &  parentIPs 
)

◆ getPeakRSS()

size_t PinCCTLib::getPeakRSS ( )

Returns the peak (maximum so far) resident set size (physical memory use) measured in KB, or zero if the value cannot be determined on this OS.

Definition at line 1929 of file cctlib.cpp.

◆ GetPINCCT32BitContextIndex()

ContextHandle_t PinCCTLib::GetPINCCT32BitContextIndex ( IPNode node)

◆ GetPINCCTContextFrom32BitIndex()

IPNode* PinCCTLib::GetPINCCTContextFrom32BitIndex ( ContextHandle_t  index)
inline

◆ GetPINCCTCurrentContext()

◆ GetPINCCTCurrentContextWithSlot()

IPNode* PinCCTLib::GetPINCCTCurrentContextWithSlot ( THREADID  id,
uint32_t  slot 
)

◆ GetStringFromStringPool()

char * PinCCTLib::GetStringFromStringPool ( const uint32_t  index)

◆ GetTraceStartHandle()

ContextHandle_t PinCCTLib::GetTraceStartHandle ( ContextHandle_t  ctxtHandle)

Definition at line 3249 of file cctlib.cpp.

References ctxtHandle, and GET_IPNODE_FROM_CONTEXT_HANDLE.

Referenced by BuildInventoryFromThread().

◆ GoUpCallChain()

◆ HaveSameCallerPrefix()

bool PinCCTLib::HaveSameCallerPrefix ( ContextHandle_t  ctxt1,
ContextHandle_t  ctxt2 
)

◆ HoldLongJmpBuf()

static VOID PinCCTLib::HoldLongJmpBuf ( ADDRINT  buf,
THREADID  threadId 
)
inlinestatic

Definition at line 566 of file cctlib.cpp.

References buf, CCTLibGetTLS(), and PinCCTLib::ThreadData::tlsLongJmpHoldBuf.

Referenced by CCTLibImage().

◆ hpcfmt_int2_fwrite()

static int PinCCTLib::hpcfmt_int2_fwrite ( uint16_t  val,
FILE *  outfs 
)
inlinestatic

◆ hpcfmt_int4_fwrite()

static int PinCCTLib::hpcfmt_int4_fwrite ( uint32_t  val,
FILE *  outfs 
)
inlinestatic

◆ hpcfmt_int8_fwrite()

static int PinCCTLib::hpcfmt_int8_fwrite ( uint64_t  val,
FILE *  outfs 
)
inlinestatic

◆ hpcfmt_intX_fwrite()

static int PinCCTLib::hpcfmt_intX_fwrite ( uint8_t *  val,
size_t  size,
FILE *  outfs 
)
inlinestatic

Definition at line 3621 of file cctlib.cpp.

References hpcio_beX_fwrite().

Referenced by hpcrun_set_metric_info_w_fn().

◆ hpcfmt_str_fwrite()

int PinCCTLib::hpcfmt_str_fwrite ( const char *  str,
FILE *  outfs 
)

◆ hpcio_be2_fwrite()

size_t PinCCTLib::hpcio_be2_fwrite ( const uint16_t *  val,
FILE *  fs 
)

Definition at line 3940 of file cctlib.cpp.

Referenced by hpcfmt_int2_fwrite().

◆ hpcio_be4_fwrite()

size_t PinCCTLib::hpcio_be4_fwrite ( const uint32_t *  val,
FILE *  fs 
)

Definition at line 3958 of file cctlib.cpp.

Referenced by hpcfmt_int4_fwrite().

◆ hpcio_be8_fwrite()

size_t PinCCTLib::hpcio_be8_fwrite ( const uint64_t *  val,
FILE *  fs 
)

Definition at line 3974 of file cctlib.cpp.

Referenced by hpcfmt_int8_fwrite().

◆ hpcio_beX_fwrite()

size_t PinCCTLib::hpcio_beX_fwrite ( uint8_t *  val,
size_t  size,
FILE *  fs 
)

Definition at line 3992 of file cctlib.cpp.

Referenced by hpcfmt_intX_fwrite().

◆ hpcio_fclose()

int PinCCTLib::hpcio_fclose ( FILE *  fs)

Definition at line 3629 of file cctlib.cpp.

Referenced by newCCT_hpcrun_selection_write(), and newCCT_hpcrun_write().

◆ hpcrun_create_metric()

int PinCCTLib::hpcrun_create_metric ( const char *  name)

◆ hpcrun_files_init()

static void PinCCTLib::hpcrun_files_init ( )
static

◆ hpcrun_files_next_id()

static int PinCCTLib::hpcrun_files_next_id ( struct fileid id)
static

◆ hpcrun_fmt_epochHdr_fwrite()

int PinCCTLib::hpcrun_fmt_epochHdr_fwrite ( FILE *  fs,
epoch_flags_t  flags,
uint64_t  measurementGranularity,
uint32_t  raToCallsiteOfst 
)

◆ hpcrun_fmt_hdr_fwrite()

int PinCCTLib::hpcrun_fmt_hdr_fwrite ( FILE *  fs,
const char *  arg1,
const char *  arg2 
)

Definition at line 3918 of file cctlib.cpp.

References hpcfmt_str_fwrite().

Referenced by hpcrun_fmt_epochHdr_fwrite(), and lazy_open_data_file().

◆ hpcrun_fmt_hdrwrite()

int PinCCTLib::hpcrun_fmt_hdrwrite ( FILE *  fs)

◆ hpcrun_fmt_loadmap_fwrite()

int PinCCTLib::hpcrun_fmt_loadmap_fwrite ( FILE *  fs,
const std::string &  filename 
)

◆ hpcrun_insert_path()

void PinCCTLib::hpcrun_insert_path ( NewIPNode root,
HPCRunCCT_t HPCRunNode,
uint64_t *  nodeCount 
)

◆ hpcrun_open_file()

static int PinCCTLib::hpcrun_open_file ( int  thread,
const char *  suffix,
int  flags,
const char *  fileName 
)
static

◆ hpcrun_open_profile_file()

int PinCCTLib::hpcrun_open_profile_file ( int  thread,
const char *  fileName 
)

◆ hpcrun_set_metric_info_w_fn() [1/2]

void PinCCTLib::hpcrun_set_metric_info_w_fn ( int  metric_id,
const char *  name,
MetricFlags_ValFmt_t  valFmt,
size_t  period,
FILE *  fs 
)

◆ hpcrun_set_metric_info_w_fn() [2/2]

void PinCCTLib::hpcrun_set_metric_info_w_fn ( int  metric_id,
const char *  name,
size_t  period,
FILE *  fs 
)

◆ init_hpcrun_format()

int PinCCTLib::init_hpcrun_format ( int  argc,
char *  argv[],
void(*)(void *des, void *src mergeFunc = nullptr,
uint64_t(*)(void *metric computeMetricVal = nullptr,
bool  skip = false 
)

◆ InitBuffers()

◆ InitDataCentric()

static void PinCCTLib::InitDataCentric ( )
static

◆ InitLogFile()

static void PinCCTLib::InitLogFile ( FILE *  logFile)
static

◆ InitMapFilePrefix()

static void PinCCTLib::InitMapFilePrefix ( )
static

◆ InitSegHandler()

static void PinCCTLib::InitSegHandler ( )
static

◆ InitShadowSpaceForDataCentric()

static void PinCCTLib::InitShadowSpaceForDataCentric ( VOID *  addr,
uint32_t  accessLen,
DataHandle_t initializer 
)
static

Definition at line 2481 of file cctlib.cpp.

References PAGE_OFFSET, SHADOW_PAGE_SIZE, sm, and status.

Referenced by CaptureMallocPointer(), and compute_static_var().

◆ InitXED()

static void PinCCTLib::InitXED ( )
static

◆ InstrumentTraceEntry()

◆ InterestingInsAll()

BOOL PinCCTLib::InterestingInsAll ( INS  ins)
inline

Definition at line 76 of file cctlib.H.

◆ InterestingInsMemoryAccess()

BOOL PinCCTLib::InterestingInsMemoryAccess ( INS  ins)
inline

Definition at line 81 of file cctlib.H.

◆ InterestingInsNone()

BOOL PinCCTLib::InterestingInsNone ( INS  ins)
inline

Definition at line 71 of file cctlib.H.

◆ IPNode_fwrite()

◆ IsARootIPNode()

◆ IsCallInstruction()

static bool PinCCTLib::IsCallInstruction ( ADDRINT  ip)
static

XED state

Definition at line 595 of file cctlib.cpp.

References PinCCTLib::CCT_LIB_GLOBAL_STATE::cct_xed_state, GLOBAL_STATE, and ip.

◆ IsCallOrRetIns()

BOOL PinCCTLib::IsCallOrRetIns ( INS  ins)
inline

Definition at line 466 of file cctlib.cpp.

Referenced by GetNumInterestingInsInTrace().

◆ IsDirectory()

static bool PinCCTLib::IsDirectory ( const char *  path)
static

Definition at line 1575 of file cctlib.cpp.

Referenced by GetAllFilesInDirWithExtn().

◆ IsSameSourceLine()

bool PinCCTLib::IsSameSourceLine ( ContextHandle_t  ctxt1,
ContextHandle_t  ctxt2 
)

Definition at line 3255 of file cctlib.cpp.

References GetIPFromInfo().

Referenced by ImageUnload(), PrintApproximationRedundancyPairs(), and PrintRedundancyPairs().

◆ IsValidIP()

static bool PinCCTLib::IsValidIP ( ADDRINT  ip)
inlinestatic

Definition at line 2006 of file cctlib.cpp.

References ip.

◆ IsValidPLTSignature()

static bool PinCCTLib::IsValidPLTSignature ( const ADDRINT &  ip)
inlinestatic

Definition at line 2042 of file cctlib.cpp.

References ip.

Referenced by GetFullCallingContextInSitu().

◆ lazy_open_data_file()

◆ ListAllNodesOfSplayTree()

static void PinCCTLib::ListAllNodesOfSplayTree ( TraceSplay node,
vector< TraceNode * > &  childTraces 
)
static

◆ LogContexts() [1/2]

void PinCCTLib::LogContexts ( iostream &  ios,
ContextHandle_t  ctxt1,
ContextHandle_t  ctxt2 
)

Definition at line 2407 of file cctlib.cpp.

References GetNormalizedIpVectorClippedToMainOneAheadIp().

◆ LogContexts() [2/2]

void PinCCTLib::LogContexts ( std::iostream &  ios,
ContextHandle_t  ctxt1,
ContextHandle_t  ctxt2 
)

Referenced by ImageUnload().

◆ MaybeGoUpCallChain()

static VOID PinCCTLib::MaybeGoUpCallChain ( ADDRINT  retTarget,
const ADDRINT *  returnAddrs,
uint32_t  n,
THREADID  threadId 
)
inlinestatic

◆ mergeIP()

void PinCCTLib::mergeIP ( NewIPNode prev,
IPNode cur,
uint64_t *  nodeCount 
)

◆ newCCT_hpcrun_build_cct()

◆ newCCT_hpcrun_selection_write()

◆ newCCT_hpcrun_write()

◆ OnSig()

static void PinCCTLib::OnSig ( THREADID  threadId,
CONTEXT_CHANGE_REASON  reason,
const CONTEXT *  ctxtFrom,
CONTEXT *  ctxtTo,
INT32  sig,
VOID *  v 
)
static

Definition at line 1315 of file cctlib.cpp.

References CCTLibGetTLS(), and PinCCTLib::ThreadData::tlsInitiatedCall.

Referenced by PinCCTLibInit().

◆ OSUtil_hostid()

long PinCCTLib::OSUtil_hostid ( )

Definition at line 3582 of file cctlib.cpp.

References OSUtil_hostid_NULL.

Referenced by hpcrun_files_init(), and lazy_open_data_file().

◆ OSUtil_jobid()

const char * PinCCTLib::OSUtil_jobid ( )

Definition at line 3555 of file cctlib.cpp.

Referenced by lazy_open_data_file().

◆ OSUtil_pid()

uint PinCCTLib::OSUtil_pid ( )

Definition at line 3549 of file cctlib.cpp.

Referenced by lazy_open_data_file().

◆ PinCCTLibInit()

◆ PinCCTLibInitForPostmortemAnalysis()

int PinCCTLib::PinCCTLibInitForPostmortemAnalysis ( FILE *  logFile,
const std::string &  serializedFilesDirectory 
)

◆ PopulateIPReverseMapAndAccountTraceInstructions()

◆ PrintFullCallingContext()

◆ PrintStats()

static void PinCCTLib::PrintStats ( )
static

◆ ReleaseLock()

VOID PinCCTLib::ReleaseLock ( )
inline

◆ RememberSlotNoInTLS()

static VOID PinCCTLib::RememberSlotNoInTLS ( uint32_t  slot,
THREADID  threadId 
)
inlinestatic

◆ RestoreSigLongJmpCtxt()

static VOID PinCCTLib::RestoreSigLongJmpCtxt ( THREADID  threadId)
inlinestatic

◆ SegvHandler()

static void PinCCTLib::SegvHandler ( int  sig)
static

Definition at line 1378 of file cctlib.cpp.

References PinCCTLib::CCT_LIB_GLOBAL_STATE::env, and GLOBAL_STATE.

Referenced by InitSegHandler().

◆ SerializeAllCCTs()

◆ SerializeCCTNode()

◆ SerializeMetadata()

void PinCCTLib::SerializeMetadata ( const std::string &  directoryForSerializationFiles = "")

◆ SerializeMouleInfo()

◆ SerializeTraceIps()

◆ SetCallInitFlag()

◆ SetIPFromInfo()

static void PinCCTLib::SetIPFromInfo ( ContextHandle_t  ctxtHndle,
ADDRINT  val 
)
inlinestatic

◆ spinlock_lock()

static void PinCCTLib::spinlock_lock ( spinlock_t l)
inlinestatic

Definition at line 3739 of file cctlib.cpp.

References fetch_and_store(), SPINLOCK_LOCKED_VALUE, and SPINLOCK_UNLOCKED_VALUE.

Referenced by hpcrun_open_profile_file().

◆ spinlock_unlock()

static void PinCCTLib::spinlock_unlock ( spinlock_t l)
inlinestatic

Definition at line 3734 of file cctlib.cpp.

References SPINLOCK_UNLOCKED_VALUE.

Referenced by hpcrun_open_profile_file().

◆ splay()

static struct TraceSplay* PinCCTLib::splay ( struct TraceSplay root,
ADDRINT  ip 
)
static

Definition at line 1171 of file cctlib.cpp.

References ip, TraceSplay::key, TraceSplay::left, REGULAR_SPLAY_TREE, and TraceSplay::right.

◆ TakeLock()

VOID PinCCTLib::TakeLock ( )
inline

◆ ThreadCapturePoint()

◆ ThreadCreatePoint()

◆ TraceIsInAddressRange()

static bool PinCCTLib::TraceIsInAddressRange ( TraceNode trace,
ADDRINT  lo,
ADDRINT  hi 
)
static

◆ tranverseIPs()

◆ tranverseNewCCT()

void PinCCTLib::tranverseNewCCT ( vector< NewIPNode * >  nodes,
FILE *  fs 
)

Definition at line 4133 of file cctlib.cpp.

References IPNode_fwrite().

Referenced by newCCT_hpcrun_selection_write(), and newCCT_hpcrun_write().

◆ UpdateCurTraceAndIp() [1/2]

static void PinCCTLib::UpdateCurTraceAndIp ( ThreadData tData,
TraceNode *const  trace 
)
inlinestatic

Definition at line 549 of file cctlib.cpp.

References PinCCTLib::TraceNode::childCtxtStartIdx.

Referenced by CCTLibInitThreadData(), and InstrumentTraceEntry().

◆ UpdateCurTraceAndIp() [2/2]

static void PinCCTLib::UpdateCurTraceAndIp ( ThreadData tData,
TraceNode *const  trace,
ContextHandle_t const  ctxtHndle 
)
inlinestatic

◆ UpdateCurTraceOnly()

static void PinCCTLib::UpdateCurTraceOnly ( ThreadData tData,
TraceNode *const  trace 
)
inlinestatic

◆ VisitAllNodesOfSplayTree()

static void PinCCTLib::VisitAllNodesOfSplayTree ( TraceSplay node,
FILE *const  fp 
)
static

Variable Documentation

◆ 

union { ... }

◆ 

union { ... }

◆ bits

uint8_t PinCCTLib::bits

Definition at line 3392 of file cctlib.cpp.

◆ bits_big

uint64_t PinCCTLib::bits_big[2]

Definition at line 3417 of file cctlib.cpp.

◆ bufSZ

const uint PinCCTLib::bufSZ = 32

Definition at line 3513 of file cctlib.cpp.

Referenced by lazy_open_data_file().

◆ ctxtHandle

ContextHandle_t PinCCTLib::ctxtHandle

Definition at line 52 of file cctlib.H.

Referenced by DumpCallStack(), GetParentIPs(), GetTraceStartHandle(), and PrintFullCallingContext().

◆ ctxtHandle2

ContextHandle_t PinCCTLib::ctxtHandle2

Definition at line 59 of file cctlib.H.

◆ cycles

unsigned PinCCTLib::cycles

Definition at line 3398 of file cctlib.cpp.

◆ default_measurement_granularity

const uint64_t PinCCTLib::default_measurement_granularity = 1
static

Definition at line 3487 of file cctlib.cpp.

Referenced by lazy_open_data_file().

◆ default_ra_to_callsite_distance

const uint32_t PinCCTLib::default_ra_to_callsite_distance = 1
static

Definition at line 3488 of file cctlib.cpp.

Referenced by lazy_open_data_file().

◆ description

char* PinCCTLib::description

Definition at line 3422 of file cctlib.cpp.

◆ dirName

std::string PinCCTLib::dirName

Definition at line 3500 of file cctlib.cpp.

Referenced by hpcrun_open_file(), and init_hpcrun_format().

◆ disassembly

std::string PinCCTLib::disassembly

Definition at line 51 of file cctlib.H.

Referenced by DumpCallStack().

◆ earlyid

struct fileid PinCCTLib::earlyid
static

Definition at line 3492 of file cctlib.cpp.

Referenced by hpcrun_files_init(), and hpcrun_open_file().

◆ epoch_flags

epoch_flags_t PinCCTLib::epoch_flags
static
Initial value:
= {
.bits = 0x0000000000000000}

Definition at line 3484 of file cctlib.cpp.

Referenced by lazy_open_data_file().

◆ filename

◆ filePath

std::string PinCCTLib::filePath

Definition at line 50 of file cctlib.H.

Referenced by GetFullCallingContextInSitu(), and GetLineFromInfo().

◆ files_lock

spinlock_t PinCCTLib::files_lock = SPINLOCK_UNLOCKED
static

Definition at line 3491 of file cctlib.cpp.

Referenced by hpcrun_open_profile_file().

◆ flags

hpcrun_metricFlags_t PinCCTLib::flags

Definition at line 3425 of file cctlib.cpp.

Referenced by hpcrun_fmt_epochHdr_fwrite(), hpcrun_open_file(), and ThreadStartRegister().

◆ format

char* PinCCTLib::format

Definition at line 3429 of file cctlib.cpp.

◆ formula

char* PinCCTLib::formula

Definition at line 3428 of file cctlib.cpp.

◆ gDotId

uint64_t PinCCTLib::gDotId
static

Definition at line 1679 of file cctlib.cpp.

Referenced by DottifyAllCCTs(), and DottifyCCTNode().

◆ GLOBAL_STATE

struct PinCCTLib::CCT_LIB_GLOBAL_STATE PinCCTLib::GLOBAL_STATE

Referenced by AppendLoadModulesToStream(), CCTLibAppStartNotification(), CCTLibGetTLS(), CCTLibImage(), CCTLibInitThreadData(), CCTLibInstrumentImageLoad(), CCTLibThreadStart(), compute_static_var(), constructIPNodeFromIP(), DeleteStaticVar(), DeserializeAllCCTs(), DeserializeMetadata(), DeserializeMouleInfo(), DeserializeTraceIps(), DottifyAllCCTs(), FindHandlerFrameForLandingPad(), findMain(), GetDecodedInstFromIP(), GetFullCallingContext(), GetFullCallingContextInSitu(), GetFullCallingContextPostmortem(), GetInstructionLength(), GetIPFromInfo(), GetModulePathFromInfo(), GetNextIPVecBuffer(), GetNextStringPoolIndex(), GetNormalizedIpVectorClippedToMainOneAheadIp(), GetOrClassifyRoutine(), GetPINCCT32BitContextIndex(), GetPINCCTContextFrom32BitIndex(), GetStringFromStringPool(), GoUpCallChain(), hpcrun_create_metric(), hpcrun_fmt_loadmap_fwrite(), init_hpcrun_format(), InitBuffers(), InitDataCentric(), InitLogFile(), InitMapFilePrefix(), InitSegHandler(), InitXED(), IPNode_fwrite(), IsARootIPNode(), IsCallInstruction(), lazy_open_data_file(), mergeIP(), newCCT_hpcrun_build_cct(), newCCT_hpcrun_write(), PinCCTLibInit(), PinCCTLibInitForPostmortemAnalysis(), PopulateIPReverseMapAndAccountTraceInstructions(), PrintFullCallingContext(), PrintStats(), ReleaseLock(), SegvHandler(), SerializeAllCCTs(), SerializeMetadata(), SerializeMouleInfo(), SerializeTraceIps(), SetCallInitFlag(), SetIPFromInfo(), TakeLock(), ThreadCapturePoint(), ThreadCreatePoint(), and TraceIsInAddressRange().

◆ HPCRUN_FMT_Endian

const char PinCCTLib::HPCRUN_FMT_Endian[] = "b"
static

Definition at line 3506 of file cctlib.cpp.

Referenced by hpcrun_fmt_hdrwrite().

◆ HPCRUN_FMT_EndianLen

const int PinCCTLib::HPCRUN_FMT_EndianLen = (sizeof(HPCRUN_FMT_Endian) - 1)
static

Definition at line 3507 of file cctlib.cpp.

Referenced by hpcrun_fmt_hdrwrite().

◆ HPCRUN_FMT_EpochTag

const char PinCCTLib::HPCRUN_FMT_EpochTag[] = "EPOCH___"
static

Definition at line 3511 of file cctlib.cpp.

Referenced by hpcrun_fmt_epochHdr_fwrite().

◆ HPCRUN_FMT_EpochTagLen

const int PinCCTLib::HPCRUN_FMT_EpochTagLen = (sizeof(HPCRUN_FMT_EpochTag) - 1)
static

Definition at line 3512 of file cctlib.cpp.

Referenced by hpcrun_fmt_epochHdr_fwrite().

◆ HPCRUN_FMT_Magic

const char PinCCTLib::HPCRUN_FMT_Magic[] = "HPCRUN-profile____"
static

Definition at line 3504 of file cctlib.cpp.

Referenced by hpcrun_fmt_hdrwrite().

◆ HPCRUN_FMT_MagicLen

const int PinCCTLib::HPCRUN_FMT_MagicLen = (sizeof(HPCRUN_FMT_Magic) - 1)
static

Definition at line 3505 of file cctlib.cpp.

Referenced by hpcrun_fmt_hdrwrite().

◆ HPCRUN_FMT_Version

const char PinCCTLib::HPCRUN_FMT_Version[] = "02.00"
static

Definition at line 3509 of file cctlib.cpp.

Referenced by hpcrun_fmt_hdrwrite().

◆ HPCRUN_FMT_VersionLen

const char PinCCTLib::HPCRUN_FMT_VersionLen = (sizeof(HPCRUN_FMT_Version) - 1)
static

Definition at line 3510 of file cctlib.cpp.

Referenced by hpcrun_fmt_hdrwrite().

◆ hpcrun_metricFlags_NULL

const hpcrun_metricFlags_t PinCCTLib::hpcrun_metricFlags_NULL
Initial value:
= {
MetricFlags_Ty_NULL,
MetricFlags_ValTy_NULL,
MetricFlags_ValFmt_NULL,
0,
0,
(uint8_t) true,
(uint8_t) true,
0,
}

Definition at line 3472 of file cctlib.cpp.

Referenced by hpcrun_set_metric_info_w_fn().

◆ HPCRUN_ProfileFnmSfx

const char PinCCTLib::HPCRUN_ProfileFnmSfx[] = "hpcrun"
static

Definition at line 3508 of file cctlib.cpp.

Referenced by hpcrun_open_profile_file().

◆ ip

ADDRINT PinCCTLib::ip

Definition at line 54 of file cctlib.H.

◆ is_frequency_metric

bool PinCCTLib::is_frequency_metric

Definition at line 3430 of file cctlib.cpp.

◆ lateid

struct fileid PinCCTLib::lateid
static

Definition at line 3492 of file cctlib.cpp.

Referenced by hpcrun_files_init(), and hpcrun_open_file().

◆ lineNo

uint32_t PinCCTLib::lineNo

◆ locked

volatile bool PinCCTLib::locked

Definition at line 227 of file cctlib.cpp.

◆ log_done

int PinCCTLib::log_done = 0
static

Definition at line 3495 of file cctlib.cpp.

Referenced by hpcrun_files_init().

◆ log_rename_done

int PinCCTLib::log_rename_done = 0
static

Definition at line 3496 of file cctlib.cpp.

Referenced by hpcrun_files_init().

◆ log_rename_ret

int PinCCTLib::log_rename_ret = 0
static

Definition at line 3497 of file cctlib.cpp.

Referenced by hpcrun_files_init().

◆ metric

◆ metric_id

int PinCCTLib::metric_id

Definition at line 61 of file cctlib.H.

◆ metricDesc_NULL

const metric_desc_t PinCCTLib::metricDesc_NULL
Initial value:
= {
nullptr,
nullptr,
MetricFlags_Ty_NULL,
MetricFlags_ValTy_NULL,
MetricFlags_ValFmt_NULL,
0,
0,
(uint8_t) true,
(uint8_t) true,
0,
0,
0,
0,
nullptr,
nullptr,
}

Definition at line 3451 of file cctlib.cpp.

Referenced by hpcrun_set_metric_info_w_fn().

◆ mypid

pid_t PinCCTLib::mypid = 0
static

Definition at line 3492 of file cctlib.cpp.

Referenced by hpcrun_files_init(), and hpcrun_open_file().

◆ NO_MORE_TRACE_NODES_IN_SPLAY_TREE

uint32_t PinCCTLib::NO_MORE_TRACE_NODES_IN_SPLAY_TREE = UINT_MAX
static

Definition at line 1457 of file cctlib.cpp.

Referenced by DeserializeCCTNode(), and SerializeCCTNode().

◆ partner

uint16_t PinCCTLib::partner

Definition at line 3407 of file cctlib.cpp.

◆ pathHandle

ContextHandle_t PinCCTLib::pathHandle

Definition at line 34 of file cctlib.H.

◆ period

uint64_t PinCCTLib::period

Definition at line 3426 of file cctlib.cpp.

Referenced by hpcrun_set_metric_info_w_fn().

◆ predecessorWasWriter

volatile bool PinCCTLib::predecessorWasWriter

Definition at line 228 of file cctlib.cpp.

◆ properties

metric_desc_properties_t PinCCTLib::properties

Definition at line 3427 of file cctlib.cpp.

◆ show

uint8_t PinCCTLib::show

Definition at line 3408 of file cctlib.cpp.

◆ showPercent

uint8_t PinCCTLib::showPercent

Definition at line 3409 of file cctlib.cpp.

◆ sm

◆ status

volatile uint8_t PinCCTLib::status

Definition at line 230 of file cctlib.cpp.

Referenced by UnrolledLoop< start, end, incr >::__attribute__(), RedSpyAnalysis< AccessLen, bufferOffset >::__attribute__(), CheckAfterLargeWrite(), CheckRace(), ExecuteOffsetSpanPhaseProtocol(), getMemValueNum(), RedSpyAnalysis< AccessLen, bufferOffset >::if(), init_hpcrun_format(), InitShadowSpaceForDataCentric(), MemFunc(), Record10ByteMemRead(), Record10ByteMemWrite(), Record16ByteMemRead(), Record16ByteMemWrite(), Record1ByteMemRead(), Record1ByteMemWrite(), Record1ByteMemWriteWithoutDead(), Record2ByteMemRead(), Record2ByteMemWrite(), Record4ByteMemRead(), Record4ByteMemWrite(), Record8ByteMemRead(), Record8ByteMemWrite(), RecordLargeMemRead(), MemAnalysis< AccessLen >::RecordNByteMemRead(), MemAnalysis< AccessLen >::RecordNByteMemWrite(), RecordOneByteMemRead(), RecordOneByteMemWrite(), removeOldstring(), anonymous_namespace{cache_client_integration_test.cpp}::run_pin(), anonymous_namespace{cctlib_integration_test.cpp}::run_pin(), anonymous_namespace{deadspy_integration_test.cpp}::run_pin(), anonymous_namespace{footprint_integration_test.cpp}::run_pin(), anonymous_namespace{ins_reuse_integration_test.cpp}::run_pin(), anonymous_namespace{loadspy_integration_test.cpp}::run_pin(), anonymous_namespace{omp_race_integration_test.cpp}::run_pin(), anonymous_namespace{redspy_integration_test.cpp}::run_pin(), anonymous_namespace{rvn_integration_test.cpp}::run_pin(), anonymous_namespace{exception_shape_test.cpp}::run_pin_capture(), anonymous_namespace{recursion_integration_test.cpp}::run_pin_capture(), and setMemValueNum().

◆ symName

uint32_t PinCCTLib::symName

Definition at line 35 of file cctlib.H.

◆ unused

uint64_t PinCCTLib::unused

Definition at line 3386 of file cctlib.cpp.

◆ unused0

uint8_t PinCCTLib::unused0

Definition at line 3406 of file cctlib.cpp.

◆ unused1

uint64_t PinCCTLib::unused1

Definition at line 3410 of file cctlib.cpp.

◆ valFmt

MetricFlags_ValFmt_t PinCCTLib::valFmt

Definition at line 3405 of file cctlib.cpp.

Referenced by hpcrun_set_metric_info_w_fn().

◆ valTy

MetricFlags_ValTy_t PinCCTLib::valTy

Definition at line 3404 of file cctlib.cpp.