|
CCTLib
Calling-context and data-object attribution library for Intel Pin
|
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 ThreadData * | CCTLibGetTLS (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 TraceNode * | FindHandlerFrameForLandingPad (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 RtnInfo * | GetOrClassifyRoutine (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 TraceSplay * | splay (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) |
| IPNode * | GetPINCCTCurrentContext (THREADID id) |
| IPNode * | GetPINCCTCurrentContextWithSlot (THREADID id, uint32_t slot) |
| ContextHandle_t | GetPINCCT32BitContextIndex (IPNode *node) |
| IPNode * | GetPINCCTContextFrom32BitIndex (ContextHandle_t index) |
| static VOID | CCTLibFini (INT32 code, VOID *v) |
| static void | VisitAllNodesOfSplayTree (TraceSplay *node, FILE *const fp) |
| static TraceNode * | DeserializeCCTNode (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) |
| NewIPNode * | constructIPNode (NewIPNode *parentIP, IPNode *oldIPNode, uint32_t parentID, uint64_t *nodeCount) |
| void | tranverseIPs (NewIPNode *curIPNode, TraceSplay *childCtxtStartIdx, uint64_t *nodeCount) |
| NewIPNode * | findSameIP (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) |
| NewIPNode * | findSameIPbyIP (vector< NewIPNode * > nodes, ADDRINT address) |
| NewIPNode * | constructIPNodeFromIP (NewIPNode *parentIP, ADDRINT address, uint64_t *nodeCount) |
| void | hpcrun_insert_path (NewIPNode *root, HPCRunCCT_t *HPCRunNode, uint64_t *nodeCount) |
| using PinCCTLib::CCTLibInstrumentInsCallback = typedef VOID (*)(INS, VOID*, const uint32_t) |
| using PinCCTLib::Context = typedef struct Context { std::string functionName |
| using PinCCTLib::ContextHandle_t = typedef uint32_t |
| using PinCCTLib::DataHandle_t = typedef struct DataHandle_t { uint8_t objectType |
| using PinCCTLib::epoch_flags_bitfield = typedef struct epoch_flags_bitfield { bool isLogicalUnwind : 1 |
Definition at line 3384 of file cctlib.cpp.
| using PinCCTLib::epoch_flags_t = typedef union epoch_flags_t { epoch_flags_bitfield fields |
Definition at line 3390 of file cctlib.cpp.
| using PinCCTLib::hpcrun_metricFlags_fields = typedef struct hpcrun_metricFlags_fields { MetricFlags_Ty_t ty : 8 |
Definition at line 3402 of file cctlib.cpp.
| using PinCCTLib::hpcrun_metricFlags_t = typedef union hpcrun_metricFlags_t { hpcrun_metricFlags_fields fields |
Definition at line 3414 of file cctlib.cpp.
| using PinCCTLib::HPCRunCCT_t = typedef struct HPCRunCCT_t { ContextHandle_t ctxtHandle1 |
| using PinCCTLib::IsInterestingInsFptr = typedef BOOL (*)(INS) |
| using PinCCTLib::metric_desc_properties_t = typedef struct metric_desc_properties_t { unsigned time : 1 |
Definition at line 3396 of file cctlib.cpp.
| using PinCCTLib::metric_desc_t = typedef struct metric_desc_t { char* name |
Definition at line 3420 of file cctlib.cpp.
| using PinCCTLib::metric_set_t = typedef struct metric_set_t |
Definition at line 3434 of file cctlib.cpp.
| 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.
| 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.
| 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.
| using PinCCTLib::QNode = typedef struct QNode { struct QNode* volatile next |
Definition at line 223 of file cctlib.cpp.
| using PinCCTLib::size_t = typedef uint16_t |
Definition at line 3359 of file cctlib.cpp.
| using PinCCTLib::spinlock_t = typedef struct spinlock_s { volatile long thelock |
Definition at line 3437 of file cctlib.cpp.
| Enumerator | |
|---|---|
| CCT_LIB_MODE_COLLECTION | |
| CCT_LIB_MODE_POSTMORTEM | |
Definition at line 176 of file cctlib.cpp.
| void PinCCTLib::AppendLoadModulesToStream | ( | iostream & | ios | ) |
Definition at line 2359 of file cctlib.cpp.
References GLOBAL_STATE, and PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap.
| void PinCCTLib::AppendLoadModulesToStream | ( | std::iostream & | ios | ) |
Referenced by ImageUnload().
Definition at line 2569 of file cctlib.cpp.
References CCTLibGetTLS(), GetContextHandle(), PinCCTLib::ThreadData::tlsDynamicMemoryAllocationPathHandle, and PinCCTLib::ThreadData::tlsDynamicMemoryAllocationSize.
Referenced by CCTLibImage().
|
static |
Definition at line 2777 of file cctlib.cpp.
References DYNAMIC_OBJECT.
Referenced by CaptureReallocSize(), and CCTLibImage().
|
static |
Definition at line 702 of file cctlib.cpp.
References CCTLibGetTLS(), FindHandlerFrameForLandingPad(), handler(), PinCCTLib::ThreadData::tlsPendingHandlerCtxt, PinCCTLib::ThreadData::tlsPendingHandlerFrame, and PinCCTLib::ThreadData::tlsPendingLandingPadIp.
Referenced by CCTLibImage().
|
static |
Definition at line 2761 of file cctlib.cpp.
References CCTLibGetTLS(), DYNAMIC_OBJECT, InitShadowSpaceForDataCentric(), PinCCTLib::ThreadData::tlsDynamicMemoryAllocationPathHandle, and PinCCTLib::ThreadData::tlsDynamicMemoryAllocationSize.
Referenced by CCTLibImage().
|
static |
Definition at line 2562 of file cctlib.cpp.
References CCTLibGetTLS(), GetContextHandle(), PinCCTLib::ThreadData::tlsDynamicMemoryAllocationPathHandle, and PinCCTLib::ThreadData::tlsDynamicMemoryAllocationSize.
Referenced by CCTLibImage().
|
static |
Definition at line 2579 of file cctlib.cpp.
References CaptureFree(), CCTLibGetTLS(), GetContextHandle(), PinCCTLib::ThreadData::tlsDynamicMemoryAllocationPathHandle, and PinCCTLib::ThreadData::tlsDynamicMemoryAllocationSize.
Referenced by CCTLibImage().
|
inlinestatic |
Definition at line 559 of file cctlib.cpp.
References buf, PinCCTLib::TraceNode::callerCtxtHndl, CCTLibGetTLS(), PinCCTLib::ThreadData::tlsCurrentTraceNode, and PinCCTLib::ThreadData::tlsLongJmpMap.
Referenced by CCTLibImage().
| 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().
|
static |
Definition at line 1384 of file cctlib.cpp.
Referenced by PinCCTLibInit().
|
inlinestatic |
Definition at line 491 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibTlsKey, and GLOBAL_STATE.
Referenced by CaptureCallocSize(), CaptureLandingPadTarget(), CaptureMallocPointer(), CaptureMallocSize(), CaptureReallocSize(), CaptureSigSetJmpCtxt(), DottifyAllCCTs(), DumpCallStack(), GetContextHandle(), GetDataObjectHandle(), GetFullCallingContextInSitu(), GetNormalizedIpVectorClippedToMainOneAheadIp(), GetPINCCTCurrentContext(), GetPINCCTCurrentContextWithSlot(), GoUpCallChain(), HoldLongJmpBuf(), InstrumentTraceEntry(), IsARootIPNode(), MaybeGoUpCallChain(), newCCT_hpcrun_build_cct(), newCCT_hpcrun_selection_write(), newCCT_hpcrun_write(), OnSig(), RememberSlotNoInTLS(), RestoreSigLongJmpCtxt(), SerializeAllCCTs(), SetCallInitFlag(), and ThreadCreatePoint().
| VOID PinCCTLib::CCTLibImage | ( | IMG | img, |
| VOID * | v | ||
| ) |
Definition at line 2907 of file cctlib.cpp.
References ARCH_LONGJMP_RTN, CALLOC_FN_NAME, CaptureCallocSize(), CaptureFree(), CaptureLandingPadTarget(), CaptureMallocPointer(), CaptureMallocSize(), CaptureReallocSize(), CaptureSigSetJmpCtxt(), PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, PinCCTLib::CCT_LIB_GLOBAL_STATE::doDataCentric, FREE_FN_NAME, GLOBAL_STATE, HoldLongJmpBuf(), LONGJMP_RTN, PinCCTLib::CCT_LIB_GLOBAL_STATE::mainIP, MALLOC_FN_NAME, PTHREAD_CREATE_RTN, REALLOC_FN_NAME, RestoreSigLongJmpCtxt(), SETJMP_RTN, SIGLONGJMP_RTN, SIGSETJMP_RTN, PinCCTLib::CCT_LIB_GLOBAL_STATE::skip, ThreadCreatePoint(), and UNWIND_SETIP.
Referenced by PinCCTLibInit().
|
inlinestatic |
Definition at line 820 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, PinCCTLib::TraceNode::callerCtxtHndl, PinCCTLib::TraceNode::childCtxtStartIdx, PinCCTLib::ThreadData::curSlotNo, PinCCTLib::CCT_LIB_GLOBAL_STATE::doDataCentric, GET_IPNODE_FROM_CONTEXT_HANDLE, GetNextIPVecBuffer(), GLOBAL_STATE, PinCCTLib::TraceNode::nSlots, PinCCTLib::IPNode::parentTraceNode, PIN_ExitProcess, PinCCTLib::ThreadData::tlsHPCRunCCTRoot, PinCCTLib::ThreadData::tlsInitiatedCall, PinCCTLib::ThreadData::tlsParentThreadCtxtHndl, PinCCTLib::ThreadData::tlsParentThreadTraceNode, PinCCTLib::ThreadData::tlsPendingHandlerCtxt, PinCCTLib::ThreadData::tlsPendingHandlerFrame, PinCCTLib::ThreadData::tlsPendingLandingPadIp, PinCCTLib::ThreadData::tlsRootCtxtHndl, PinCCTLib::ThreadData::tlsRootTraceNode, PinCCTLib::ThreadData::tlsStackBase, PinCCTLib::ThreadData::tlsStackEnd, PinCCTLib::ThreadData::tlsThreadId, and UpdateCurTraceAndIp().
Referenced by CCTLibThreadStart().
|
inlinestatic |
Definition at line 1059 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::ModuleInfo::id, PinCCTLib::ModuleInfo::imgLoadOffset, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, and PinCCTLib::ModuleInfo::moduleName.
Referenced by PinCCTLibInit().
|
static |
Definition at line 1300 of file cctlib.cpp.
References GetNextTraceKey(), GetNumInterestingInsInTrace(), GetOrClassifyRoutine(), InstrumentTraceEntry(), and PopulateIPReverseMapAndAccountTraceInstructions().
Referenced by PinCCTLibInit().
|
static |
Definition at line 873 of file cctlib.cpp.
References CCTLibInitThreadData(), PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibTlsKey, GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::lock, PinCCTLib::CCT_LIB_GLOBAL_STATE::numThreads, and ThreadCapturePoint().
Referenced by PinCCTLibInit().
|
static |
Definition at line 2798 of file cctlib.cpp.
References filename, GetNextStringPoolIndex(), GLOBAL_STATE, InitShadowSpaceForDataCentric(), PIN_ExitProcess, and STATIC_OBJECT.
Referenced by ComputeVarBounds().
|
static |
Definition at line 2894 of file cctlib.cpp.
References compute_static_var(), and filename.
Referenced by InitDataCentric().
| NewIPNode * PinCCTLib::constructIPNode | ( | NewIPNode * | parentIP, |
| IPNode * | oldIPNode, | ||
| uint32_t | parentID, | ||
| uint64_t * | nodeCount | ||
| ) |
Definition at line 4008 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, GET_CONTEXT_HANDLE_FROM_IP_NODE_CHECKED, GetID(), GetIPFromInfo(), PinCCTLib::NewIPNode::ID, PinCCTLib::NewIPNode::IPAddress, PinCCTLib::NewIPNode::metric, PinCCTLib::NewIPNode::parentID, PinCCTLib::NewIPNode::parentIPNode, and PinCCTLib::NewIPNode::tmpSplay.
Referenced by newCCT_hpcrun_write(), and tranverseIPs().
| NewIPNode* PinCCTLib::constructIPNodeFromIP | ( | NewIPNode * | parentIP, |
| ADDRINT | address, | ||
| uint64_t * | nodeCount | ||
| ) |
Definition at line 4180 of file cctlib.cpp.
References address, PinCCTLib::NewIPNode::childIPNodes, GetID(), GLOBAL_STATE, PinCCTLib::NewIPNode::ID, PinCCTLib::NewIPNode::IPAddress, PinCCTLib::NewIPNode::metric, PinCCTLib::NewIPNode::metricVal, PinCCTLib::CCT_LIB_GLOBAL_STATE::nmetric, PinCCTLib::NewIPNode::parentID, PinCCTLib::NewIPNode::parentIPNode, and PinCCTLib::NewIPNode::tmpSplay.
Referenced by hpcrun_insert_path().
|
static |
Definition at line 2886 of file cctlib.cpp.
References GLOBAL_STATE.
Referenced by InitDataCentric().
|
static |
Definition at line 1625 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, DeserializeCCTNode(), PinCCTLib::CCT_LIB_GLOBAL_STATE::deserializedCCTs, GetAllFilesInDirWithExtn(), GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::numThreads, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, SERIALIZED_CCT_FILE_EXTN, PinCCTLib::ThreadData::tlsParentThreadCtxtHndl, PinCCTLib::ThreadData::tlsRootCtxtHndl, PinCCTLib::ThreadData::tlsRootTraceNode, and PinCCTLib::ThreadData::tlsThreadId.
Referenced by DeserializeMetadata().
|
static |
Definition at line 1476 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, PinCCTLib::TraceNode::callerCtxtHndl, PinCCTLib::TraceNode::childCtxtStartIdx, PinCCTLib::SerializedTraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, PinCCTLib::TraceSplay::key, PinCCTLib::TraceSplay::left, NO_MORE_TRACE_NODES_IN_SPLAY_TREE, PinCCTLib::TraceNode::nSlots, PinCCTLib::SerializedTraceNode::nSlots, PinCCTLib::IPNode::parentTraceNode, PIN_ExitProcess, PinCCTLib::TraceSplay::right, splay(), PinCCTLib::TraceNode::traceKey, PinCCTLib::SerializedTraceNode::traceKey, and PinCCTLib::TraceSplay::value.
Referenced by DeserializeAllCCTs().
| void PinCCTLib::DeserializeMetadata | ( | const string & | directoryForSerializationFiles | ) |
Definition at line 1917 of file cctlib.cpp.
References DeserializeAllCCTs(), DeserializeMouleInfo(), DeserializeTraceIps(), GLOBAL_STATE, and PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory.
Referenced by PinCCTLibInitForPostmortemAnalysis().
|
static |
Definition at line 1775 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::ModuleInfo::imgLoadOffset, MAX_FILE_PATH, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, PinCCTLib::ModuleInfo::moduleName, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, and SERIALIZED_MODULE_MAP_SUFFIX.
Referenced by DeserializeMetadata().
|
static |
Definition at line 1838 of file cctlib.cpp.
References array(), GLOBAL_STATE, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, SERIALIZED_SHADOW_TRACE_IP_FILE_SUFFIX, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by DeserializeMetadata().
| void PinCCTLib::DottifyAllCCTs | ( | ) |
Definition at line 1731 of file cctlib.cpp.
References CCTLibGetTLS(), DottifyCCTNode(), gDotId, GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::numThreads, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, and PinCCTLib::ThreadData::tlsRootTraceNode.
|
static |
Definition at line 1708 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, gDotId, GET_IPNODE_FROM_CONTEXT_HANDLE, ListAllNodesOfSplayTree(), and PinCCTLib::TraceNode::nSlots.
Referenced by DottifyAllCCTs().
| void PinCCTLib::DumpCallStack | ( | THREADID | id, |
| uint32_t | slot | ||
| ) |
Definition at line 498 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, ctxtHandle, disassembly, GetFullCallingContext(), h(), ip, PinCCTLib::TraceNode::nSlots, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
Referenced by DumpCallStackEasy().
| void PinCCTLib::DumpCallStackEasy | ( | ) |
Definition at line 515 of file cctlib.cpp.
References DumpCallStack().
|
static |
Definition at line 1582 of file cctlib.cpp.
Referenced by GetAllFilesInDirWithExtn().
|
static |
Definition at line 3727 of file cctlib.cpp.
References read_modify_write.
Referenced by spinlock_lock().
|
static |
Definition at line 668 of file cctlib.cpp.
References PinCCTLib::TraceNode::callerCtxtHndl, GLOBAL_STATE, PinCCTLib::IPNode::parentTraceNode, PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedContextBuffer, PinCCTLib::ThreadData::tlsCurrentTraceNode, PinCCTLib::ThreadData::tlsRootTraceNode, and TraceIsInAddressRange().
Referenced by CaptureLandingPadTarget().
|
static |
Definition at line 4149 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE_CHECKED, GetIPFromInfo(), GLOBAL_STATE, PinCCTLib::TraceSplay::left, PinCCTLib::CCT_LIB_GLOBAL_STATE::mainIP, PinCCTLib::TraceNode::nSlots, PinCCTLib::TraceSplay::right, and PinCCTLib::TraceSplay::value.
Referenced by newCCT_hpcrun_write().
Definition at line 4057 of file cctlib.cpp.
References address, GET_CONTEXT_HANDLE_FROM_IP_NODE_CHECKED, and GetIPFromInfo().
Referenced by tranverseIPs().
| VOID PinCCTLib::Fini | ( | INT32 | code, |
| VOID * | v | ||
| ) |
| int PinCCTLib::fputs | ( | const char *__restrict | __s, |
| FILE *__restrict | __stream | ||
| ) |
|
static |
Definition at line 1590 of file cctlib.cpp.
References endsWithExtn(), and IsDirectory().
Referenced by DeserializeAllCCTs().
| ContextHandle_t PinCCTLib::GetContextHandle | ( | const THREADID | id, |
| const uint32_t | slot | ||
| ) |
Definition at line 1356 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
Referenced by ZeroSpyAnalysis< T, AccessLen, isApprox >::__attribute__(), RedSpyAnalysis< AccessLen, bufferOffset >::__attribute__(), HandleSpecialRegisters< lenInt64 >::__attribute__(), AnalyzeInsLevelReuse(), CaptureCallocSize(), CaptureMainHandle(), CaptureMallocSize(), CaptureReallocSize(), Check10BytesReg(), CheckAfterLargeRead(), CheckAfterLargeWrite(), checkMovValueNum(), checkOpcodeValueNum(), CheckRead(), CheckRegValues(), CheckWrite(), MemFunc(), new_ARRAY_ANALYSIS_FN_NAME(), Record10ByteMemWrite(), Record16ByteMemWrite(), Record1ByteMemWrite(), Record1ByteMemWriteWithoutDead(), Record2ByteMemWrite(), Record4ByteMemWrite(), Record8ByteMemWrite(), RecordCtxt(), SimpleCCTQuery(), and UpdateFootPrint().
| DataHandle_t PinCCTLib::GetDataObjectHandle | ( | VOID * | address, |
| const THREADID | threadId | ||
| ) |
Definition at line 2495 of file cctlib.cpp.
References CCTLibGetTLS(), sm, STACK_OBJECT, and PinCCTLib::ThreadData::tlsStackEnd.
Referenced by CheckAfterLargeRead(), MemAnalysisRoutine(), and new_ARRAY_ANALYSIS_FN_NAME().
|
static |
Definition at line 1991 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::cct_xed_state, PinCCTLib::CCT_LIB_GLOBAL_STATE::disassemblyBuff, GLOBAL_STATE, and ip.
Referenced by GetFullCallingContextInSitu().
| VOID PinCCTLib::GetFullCallingContext | ( | const ContextHandle_t | curCtxtHndle, |
| std::vector< Context > & | contextVec | ||
| ) |
Definition at line 2339 of file cctlib.cpp.
References CCT_LIB_MODE_POSTMORTEM, PinCCTLib::CCT_LIB_GLOBAL_STATE::cctLibUsageMode, GetFullCallingContextInSitu(), GetFullCallingContextPostmortem(), and GLOBAL_STATE.
Referenced by BuildInventoryFromThread(), DumpCallStack(), ImageUnload(), and main().
|
static |
Definition at line 2164 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, PinCCTLib::CCT_LIB_GLOBAL_STATE::disassemblyBuff, PinCCTLib::CCT_LIB_GLOBAL_STATE::env, filePath, GET_IPNODE_FROM_CONTEXT_HANDLE, GetDecodedInstFromIP(), GetIPFromInfo(), GetLineFromInfo(), GLOBAL_STATE, ip, IS_VALID_CONTEXT, IsARootIPNode(), IsValidIP(), IsValidPLTSignature(), lineNo, MAX_CCT_PRINT_DEPTH, NOT_ROOT_CTX, PinCCTLib::CCT_LIB_GLOBAL_STATE::sigAct, and PinCCTLib::ThreadData::tlsParentThreadCtxtHndl.
Referenced by GetFullCallingContext(), hpcrun_insert_path(), and PrintFullCallingContext().
|
static |
Definition at line 2256 of file cctlib.cpp.
References CCTLibTrimInPlace(), PinCCTLib::CCT_LIB_GLOBAL_STATE::deserializedCCTs, PinCCTLib::CCT_LIB_GLOBAL_STATE::env, GET_IPNODE_FROM_CONTEXT_HANDLE, GetIPFromInfo(), GetModulePathFromInfo(), GLOBAL_STATE, ip, IS_VALID_CONTEXT, IsARootIPNode(), lineNo, MAX_CCT_PATH_DEPTH, MAX_FILE_PATH, NOT_ROOT_CTX, and PinCCTLib::CCT_LIB_GLOBAL_STATE::sigAct.
Referenced by GetFullCallingContext(), and PrintFullCallingContext().
| uint32_t PinCCTLib::GetID | ( | ) |
Definition at line 4091 of file cctlib.cpp.
Referenced by constructIPNode(), and constructIPNodeFromIP().
|
static |
XED state
Definition at line 581 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::cct_xed_state, GLOBAL_STATE, and ip.
Referenced by GetNormalizedIpVectorClippedToMainOneAheadIp().
|
inlinestatic |
Definition at line 1951 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, GLOBAL_STATE, ip, PinCCTLib::TraceNode::nSlots, PinCCTLib::TraceNode::traceKey, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by constructIPNode(), findMain(), findSameIP(), GetFullCallingContextInSitu(), GetFullCallingContextPostmortem(), GetParentIPs(), and IsSameSourceLine().
|
inlinestatic |
Definition at line 1987 of file cctlib.cpp.
References filePath, ip, and lineNo.
Referenced by GetFullCallingContextInSitu().
|
inlinestatic |
Definition at line 1978 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, PinCCTLib::IPNode::parentTraceNode, PinCCTLib::TraceNode::traceKey, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by GetFullCallingContextPostmortem().
|
inlinestatic |
Definition at line 784 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, PinCCTLib::CCT_LIB_GLOBAL_STATE::curPreAllocatedContextBufferIndex, GLOBAL_STATE, MAX_IPNODES, and PIN_ExitProcess.
Referenced by CCTLibInitThreadData(), and InstrumentTraceEntry().
|
inlinestatic |
Definition at line 806 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, PinCCTLib::CCT_LIB_GLOBAL_STATE::curPreAllocatedStringPoolIndex, GLOBAL_STATE, MAX_STRING_POOL_NODES, PIN_ExitProcess, and PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedStringPool.
Referenced by compute_static_var().
| ADDRINT PinCCTLib::GetNextTraceKey | ( | ) |
Definition at line 478 of file cctlib.cpp.
References PIN_ExitProcess.
Referenced by CCTLibInstrumentTrace().
|
static |
Definition at line 2371 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, GetInstructionLength(), GLOBAL_STATE, ip, IS_VALID_CONTEXT, IsARootIPNode(), PinCCTLib::NormalizedIP::lm_id, MAX_CCT_PRINT_DEPTH, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, NOT_ROOT_CTX, PinCCTLib::NormalizedIP::offset, PIN_ExitProcess, PinCCTLib::ThreadData::tlsParentThreadCtxtHndl, PinCCTLib::TraceNode::traceKey, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by LogContexts().
|
inlinestatic |
Definition at line 1043 of file cctlib.cpp.
References IsCallOrRetIns().
Referenced by CCTLibInstrumentTrace().
|
static |
Definition at line 899 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::RtnInfo::hasSelfRec, PinCCTLib::RtnInfo::nReturnAddrs, PinCCTLib::CCT_LIB_GLOBAL_STATE::rtnSelfRecMap, PinCCTLib::CCT_LIB_GLOBAL_STATE::rtnSelfRecRWMutex, PinCCTLib::RtnInfo::rtnStart, and PinCCTLib::RtnInfo::selfRecReturnAddrs.
Referenced by CCTLibInstrumentTrace().
| VOID PinCCTLib::GetParentIPs | ( | ContextHandle_t | ctxtHandle, |
| std::vector< ADDRINT > & | parentIPs | ||
| ) |
Definition at line 2153 of file cctlib.cpp.
References ctxtHandle, GET_IPNODE_FROM_CONTEXT_HANDLE, GetIPFromInfo(), ip, IS_VALID_CONTEXT, IsValidIP(), and MAX_CCT_PRINT_DEPTH.
| 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.
| ContextHandle_t PinCCTLib::GetPINCCT32BitContextIndex | ( | IPNode * | node | ) |
Definition at line 1370 of file cctlib.cpp.
References GLOBAL_STATE, and PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedContextBuffer.
|
inline |
Definition at line 1374 of file cctlib.cpp.
References GLOBAL_STATE, and PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedContextBuffer.
| IPNode* PinCCTLib::GetPINCCTCurrentContext | ( | THREADID | id | ) |
Definition at line 1342 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, PinCCTLib::ThreadData::curSlotNo, GET_IPNODE_FROM_CONTEXT_HANDLE, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
| IPNode* PinCCTLib::GetPINCCTCurrentContextWithSlot | ( | THREADID | id, |
| uint32_t | slot | ||
| ) |
Definition at line 1350 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
| char * PinCCTLib::GetStringFromStringPool | ( | const uint32_t | index | ) |
Definition at line 802 of file cctlib.cpp.
References GLOBAL_STATE, and PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedStringPool.
Referenced by PrintApproximationRedundancyPairs(), and PrintRedundancyPairs().
| 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().
|
inlinestatic |
Definition at line 978 of file cctlib.cpp.
References PinCCTLib::TraceNode::callerCtxtHndl, CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, GLOBAL_STATE, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, PinCCTLib::ThreadData::tlsCurrentTraceNode, PinCCTLib::ThreadData::tlsInitiatedCall, PinCCTLib::ThreadData::tlsRootCtxtHndl, PinCCTLib::TraceNode::traceKey, PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap, and UpdateCurTraceOnly().
Referenced by PopulateIPReverseMapAndAccountTraceInstructions().
| bool PinCCTLib::HaveSameCallerPrefix | ( | ContextHandle_t | ctxt1, |
| ContextHandle_t | ctxt2 | ||
| ) |
Definition at line 3241 of file cctlib.cpp.
References GET_IPNODE_FROM_CONTEXT_HANDLE.
Referenced by PrintApproximationRedundancyPairs(), and PrintRedundancyPairs().
|
inlinestatic |
Definition at line 566 of file cctlib.cpp.
References buf, CCTLibGetTLS(), and PinCCTLib::ThreadData::tlsLongJmpHoldBuf.
Referenced by CCTLibImage().
|
inlinestatic |
Definition at line 3594 of file cctlib.cpp.
References hpcio_be2_fwrite().
Referenced by hpcrun_fmt_loadmap_fwrite(), hpcrun_set_metric_info_w_fn(), and IPNode_fwrite().
|
inlinestatic |
Definition at line 3603 of file cctlib.cpp.
References hpcio_be4_fwrite().
Referenced by hpcfmt_str_fwrite(), hpcrun_fmt_epochHdr_fwrite(), hpcrun_fmt_loadmap_fwrite(), IPNode_fwrite(), and lazy_open_data_file().
|
inlinestatic |
Definition at line 3612 of file cctlib.cpp.
References hpcio_be8_fwrite().
Referenced by hpcrun_fmt_epochHdr_fwrite(), hpcrun_fmt_loadmap_fwrite(), hpcrun_set_metric_info_w_fn(), IPNode_fwrite(), newCCT_hpcrun_selection_write(), and newCCT_hpcrun_write().
|
inlinestatic |
Definition at line 3621 of file cctlib.cpp.
References hpcio_beX_fwrite().
Referenced by hpcrun_set_metric_info_w_fn().
| int PinCCTLib::hpcfmt_str_fwrite | ( | const char * | str, |
| FILE * | outfs | ||
| ) |
Definition at line 3924 of file cctlib.cpp.
References hpcfmt_int4_fwrite().
Referenced by hpcrun_fmt_hdr_fwrite(), hpcrun_fmt_loadmap_fwrite(), and hpcrun_set_metric_info_w_fn().
| 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().
| 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().
| 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().
Definition at line 3992 of file cctlib.cpp.
Referenced by hpcfmt_intX_fwrite().
| int PinCCTLib::hpcio_fclose | ( | FILE * | fs | ) |
Definition at line 3629 of file cctlib.cpp.
Referenced by newCCT_hpcrun_selection_write(), and newCCT_hpcrun_write().
| int PinCCTLib::hpcrun_create_metric | ( | const char * | name | ) |
Definition at line 4281 of file cctlib.cpp.
References GLOBAL_STATE, MAX_LEN, PinCCTLib::CCT_LIB_GLOBAL_STATE::metrics, and PinCCTLib::CCT_LIB_GLOBAL_STATE::nmetric.
Referenced by main().
|
static |
Definition at line 3636 of file cctlib.cpp.
References PinCCTLib::fileid::done, earlyid, PinCCTLib::fileid::gen, PinCCTLib::fileid::host, lateid, log_done, log_rename_done, log_rename_ret, mypid, and OSUtil_hostid().
Referenced by hpcrun_open_profile_file().
|
static |
Definition at line 3656 of file cctlib.cpp.
References PinCCTLib::fileid::done, FILES_MAX_GEN, FILES_RANDOM_GEN, PinCCTLib::fileid::gen, and PinCCTLib::fileid::host.
Referenced by hpcrun_open_file().
| int PinCCTLib::hpcrun_fmt_epochHdr_fwrite | ( | FILE * | fs, |
| epoch_flags_t | flags, | ||
| uint64_t | measurementGranularity, | ||
| uint32_t | raToCallsiteOfst | ||
| ) |
Definition at line 3906 of file cctlib.cpp.
References flags, hpcfmt_int4_fwrite(), hpcfmt_int8_fwrite(), HPCRUN_FMT_EpochTag, HPCRUN_FMT_EpochTagLen, and hpcrun_fmt_hdr_fwrite().
Referenced by lazy_open_data_file().
| 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().
| int PinCCTLib::hpcrun_fmt_hdrwrite | ( | FILE * | fs | ) |
Definition at line 3898 of file cctlib.cpp.
References HPCRUN_FMT_Endian, HPCRUN_FMT_EndianLen, HPCRUN_FMT_Magic, HPCRUN_FMT_MagicLen, HPCRUN_FMT_Version, and HPCRUN_FMT_VersionLen.
Referenced by lazy_open_data_file().
| int PinCCTLib::hpcrun_fmt_loadmap_fwrite | ( | FILE * | fs, |
| const std::string & | filename | ||
| ) |
Definition at line 3853 of file cctlib.cpp.
References GLOBAL_STATE, hpcfmt_int2_fwrite(), hpcfmt_int4_fwrite(), hpcfmt_int8_fwrite(), hpcfmt_str_fwrite(), and PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap.
Referenced by lazy_open_data_file().
| void PinCCTLib::hpcrun_insert_path | ( | NewIPNode * | root, |
| HPCRunCCT_t * | HPCRunNode, | ||
| uint64_t * | nodeCount | ||
| ) |
Definition at line 4198 of file cctlib.cpp.
References PinCCTLib::NewIPNode::childIPNodes, constructIPNodeFromIP(), findSameIPbyIP(), GetFullCallingContextInSitu(), PinCCTLib::NewIPNode::ID, ip, and PinCCTLib::NewIPNode::metricVal.
Referenced by newCCT_hpcrun_build_cct().
|
static |
Definition at line 3681 of file cctlib.cpp.
References dirName, PinCCTLib::fileid::done, earlyid, FILENAME_TEMPLATE, FILES_EARLY, flags, PinCCTLib::fileid::gen, PinCCTLib::fileid::host, hpcrun_files_next_id(), lateid, mypid, and RANK.
Referenced by hpcrun_open_profile_file().
| int PinCCTLib::hpcrun_open_profile_file | ( | int | thread, |
| const char * | fileName | ||
| ) |
Definition at line 3888 of file cctlib.cpp.
References FILES_LATE, files_lock, hpcrun_files_init(), hpcrun_open_file(), HPCRUN_ProfileFnmSfx, spinlock_lock(), and spinlock_unlock().
Referenced by lazy_open_data_file().
| void PinCCTLib::hpcrun_set_metric_info_w_fn | ( | int | metric_id, |
| const char * | name, | ||
| MetricFlags_ValFmt_t | valFmt, | ||
| size_t | period, | ||
| FILE * | fs | ||
| ) |
| void PinCCTLib::hpcrun_set_metric_info_w_fn | ( | int | metric_id, |
| const char * | name, | ||
| size_t | period, | ||
| FILE * | fs | ||
| ) |
Definition at line 3753 of file cctlib.cpp.
References hpcfmt_int2_fwrite(), hpcfmt_int8_fwrite(), hpcfmt_intX_fwrite(), hpcfmt_str_fwrite(), hpcrun_metricFlags_NULL, metricDesc_NULL, period, and valFmt.
Referenced by lazy_open_data_file().
| 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 |
||
| ) |
Definition at line 4254 of file cctlib.cpp.
References computeMetricVal(), PinCCTLib::CCT_LIB_GLOBAL_STATE::computeMetricVal, dirName, filename, GLOBAL_STATE, mergeFunc(), PinCCTLib::CCT_LIB_GLOBAL_STATE::mergeFunc, PinCCTLib::CCT_LIB_GLOBAL_STATE::nmetric, PinCCTLib::CCT_LIB_GLOBAL_STATE::skip, and status.
Referenced by main().
|
static |
Definition at line 2420 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::curPreAllocatedContextBufferIndex, PinCCTLib::CCT_LIB_GLOBAL_STATE::curPreAllocatedStringPoolIndex, GLOBAL_STATE, MAX_IPNODES, MAX_STRING_POOL_NODES, PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedContextBuffer, and PinCCTLib::CCT_LIB_GLOBAL_STATE::preAllocatedStringPool.
Referenced by PinCCTLibInit(), and PinCCTLibInitForPostmortemAnalysis().
|
static |
Definition at line 3111 of file cctlib.cpp.
References ComputeVarBounds(), DeleteStaticVar(), PinCCTLib::CCT_LIB_GLOBAL_STATE::doDataCentric, and GLOBAL_STATE.
Referenced by PinCCTLibInit().
|
static |
Definition at line 2441 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, and GLOBAL_STATE.
Referenced by PinCCTLibInit(), and PinCCTLibInitForPostmortemAnalysis().
|
static |
Definition at line 2445 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibFilePathPrefix, GLOBAL_STATE, and MAX_FILE_PATH.
Referenced by PinCCTLibInit(), and PinCCTLibInitForPostmortemAnalysis().
|
static |
Definition at line 2462 of file cctlib.cpp.
References GLOBAL_STATE, SegvHandler(), and PinCCTLib::CCT_LIB_GLOBAL_STATE::sigAct.
Referenced by PinCCTLibInit(), and PinCCTLibInitForPostmortemAnalysis().
|
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().
|
static |
Definition at line 2469 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::cct_xed_state, and GLOBAL_STATE.
Referenced by PinCCTLibInit(), and PinCCTLibInitForPostmortemAnalysis().
|
inlinestatic |
Definition at line 1182 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, PinCCTLib::TraceNode::callerCtxtHndl, CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, GetNextIPVecBuffer(), PinCCTLib::TraceSplay::key, TraceSplay::key, PinCCTLib::TraceSplay::left, PinCCTLib::TraceNode::nSlots, PinCCTLib::IPNode::parentTraceNode, PinCCTLib::TraceSplay::right, splay(), PinCCTLib::ThreadData::tlsCurrentChildContextStartIndex, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, PinCCTLib::ThreadData::tlsCurrentTraceNode, PinCCTLib::ThreadData::tlsInitiatedCall, PinCCTLib::ThreadData::tlsPendingHandlerCtxt, PinCCTLib::ThreadData::tlsPendingHandlerFrame, PinCCTLib::ThreadData::tlsPendingLandingPadIp, PinCCTLib::TraceNode::traceKey, UpdateCurTraceAndIp(), UpdateCurTraceOnly(), and PinCCTLib::TraceSplay::value.
Referenced by CCTLibInstrumentTrace().
|
inline |
| void PinCCTLib::IPNode_fwrite | ( | NewIPNode * | node, |
| FILE * | fs | ||
| ) |
Definition at line 4099 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::computeMetricVal, GLOBAL_STATE, hpcfmt_int2_fwrite(), hpcfmt_int4_fwrite(), hpcfmt_int8_fwrite(), PinCCTLib::NewIPNode::ID, PinCCTLib::NewIPNode::IPAddress, PinCCTLib::NewIPNode::metric, PinCCTLib::NewIPNode::metricVal, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, PinCCTLib::CCT_LIB_GLOBAL_STATE::nmetric, and PinCCTLib::NewIPNode::parentID.
Referenced by tranverseNewCCT().
|
static |
Definition at line 2049 of file cctlib.cpp.
References CCT_LIB_MODE_COLLECTION, CCTLibGetTLS(), PinCCTLib::CCT_LIB_GLOBAL_STATE::cctLibUsageMode, PinCCTLib::CCT_LIB_GLOBAL_STATE::deserializedCCTs, GLOBAL_STATE, NOT_ROOT_CTX, PinCCTLib::CCT_LIB_GLOBAL_STATE::numThreads, and PinCCTLib::ThreadData::tlsRootCtxtHndl.
Referenced by GetFullCallingContextInSitu(), GetFullCallingContextPostmortem(), and GetNormalizedIpVectorClippedToMainOneAheadIp().
|
static |
XED state
Definition at line 595 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::cct_xed_state, GLOBAL_STATE, and ip.
|
inline |
Definition at line 466 of file cctlib.cpp.
Referenced by GetNumInterestingInsInTrace().
|
static |
Definition at line 1575 of file cctlib.cpp.
Referenced by GetAllFilesInDirWithExtn().
| 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().
|
inlinestatic |
Definition at line 2006 of file cctlib.cpp.
References ip.
|
inlinestatic |
Definition at line 2042 of file cctlib.cpp.
References ip.
Referenced by GetFullCallingContextInSitu().
| FILE* PinCCTLib::lazy_open_data_file | ( | int | tID, |
| std::string * | filename | ||
| ) |
Definition at line 3798 of file cctlib.cpp.
References bufSZ, default_measurement_granularity, default_ra_to_callsite_distance, epoch_flags, filename, GLOBAL_STATE, hpcfmt_int4_fwrite(), hpcrun_fmt_epochHdr_fwrite(), hpcrun_fmt_hdr_fwrite(), hpcrun_fmt_hdrwrite(), hpcrun_fmt_loadmap_fwrite(), HPCRUN_FMT_NV_envPath, HPCRUN_FMT_NV_hostid, HPCRUN_FMT_NV_jobId, HPCRUN_FMT_NV_pid, HPCRUN_FMT_NV_prog, HPCRUN_FMT_NV_progPath, HPCRUN_FMT_NV_tid, HPCRUN_FMT_NV_traceMaxTime, HPCRUN_FMT_NV_traceMinTime, hpcrun_open_profile_file(), hpcrun_set_metric_info_w_fn(), PinCCTLib::CCT_LIB_GLOBAL_STATE::metrics, PinCCTLib::CCT_LIB_GLOBAL_STATE::nmetric, OSUtil_hostid(), OSUtil_jobid(), and OSUtil_pid().
Referenced by newCCT_hpcrun_selection_write(), and newCCT_hpcrun_write().
|
static |
Definition at line 1696 of file cctlib.cpp.
References PinCCTLib::TraceSplay::left, PinCCTLib::TraceSplay::right, and PinCCTLib::TraceSplay::value.
Referenced by DottifyCCTNode().
| void PinCCTLib::LogContexts | ( | iostream & | ios, |
| ContextHandle_t | ctxt1, | ||
| ContextHandle_t | ctxt2 | ||
| ) |
Definition at line 2407 of file cctlib.cpp.
References GetNormalizedIpVectorClippedToMainOneAheadIp().
| void PinCCTLib::LogContexts | ( | std::iostream & | ios, |
| ContextHandle_t | ctxt1, | ||
| ContextHandle_t | ctxt2 | ||
| ) |
Referenced by ImageUnload().
|
inlinestatic |
Definition at line 1007 of file cctlib.cpp.
References PinCCTLib::TraceNode::callerCtxtHndl, CCTLibGetTLS(), GET_IPNODE_FROM_CONTEXT_HANDLE, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, PinCCTLib::ThreadData::tlsCurrentTraceNode, PinCCTLib::ThreadData::tlsInitiatedCall, PinCCTLib::ThreadData::tlsRootCtxtHndl, and UpdateCurTraceOnly().
Referenced by PopulateIPReverseMapAndAccountTraceInstructions().
Definition at line 4070 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::mergeFunc, PinCCTLib::NewIPNode::metric, and tranverseIPs().
Referenced by tranverseIPs().
| int PinCCTLib::newCCT_hpcrun_build_cct | ( | std::vector< HPCRunCCT_t * > & | OldNodes, |
| THREADID | threadid | ||
| ) |
Definition at line 4343 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::NewIPNode::childIPNodes, GLOBAL_STATE, hpcrun_insert_path(), PinCCTLib::NewIPNode::ID, PinCCTLib::NewIPNode::IPAddress, PinCCTLib::NewIPNode::metric, PinCCTLib::NewIPNode::metricVal, PinCCTLib::CCT_LIB_GLOBAL_STATE::nmetric, PinCCTLib::ThreadData::nodeCount, PinCCTLib::ThreadData::tlsHPCRunCCTRoot, and PinCCTLib::NewIPNode::tmpSplay.
Referenced by HPCRunApproxRedundancyPairs(), and HPCRunRedundancyPairs().
| int PinCCTLib::newCCT_hpcrun_selection_write | ( | THREADID | threadid | ) |
Definition at line 4369 of file cctlib.cpp.
References CCTLibGetTLS(), PinCCTLib::NewIPNode::childIPNodes, filename, hpcfmt_int8_fwrite(), hpcio_fclose(), lazy_open_data_file(), PinCCTLib::ThreadData::nodeCount, PinCCTLib::ThreadData::tlsHPCRunCCTRoot, and tranverseNewCCT().
Referenced by ThreadFiniFunc().
| int PinCCTLib::newCCT_hpcrun_write | ( | THREADID | threadid | ) |
Definition at line 4291 of file cctlib.cpp.
References PinCCTLib::IPNode::calleeTraceNodes, PinCCTLib::TraceNode::callerCtxtHndl, CCTLibGetTLS(), PinCCTLib::TraceNode::childCtxtStartIdx, constructIPNode(), filename, findMain(), GET_IPNODE_FROM_CONTEXT_HANDLE_CHECKED, GLOBAL_STATE, hpcfmt_int8_fwrite(), hpcio_fclose(), lazy_open_data_file(), PinCCTLib::ThreadData::nodeCount, PinCCTLib::TraceNode::nSlots, PinCCTLib::IPNode::parentTraceNode, SetIPFromInfo(), PinCCTLib::CCT_LIB_GLOBAL_STATE::skip, PinCCTLib::ThreadData::tlsRootTraceNode, PinCCTLib::NewIPNode::tmpSplay, tranverseIPs(), and tranverseNewCCT().
Referenced by ThreadFiniFunc().
|
static |
Definition at line 1315 of file cctlib.cpp.
References CCTLibGetTLS(), and PinCCTLib::ThreadData::tlsInitiatedCall.
Referenced by PinCCTLibInit().
| 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().
| const char * PinCCTLib::OSUtil_jobid | ( | ) |
Definition at line 3555 of file cctlib.cpp.
Referenced by lazy_open_data_file().
| uint PinCCTLib::OSUtil_pid | ( | ) |
Definition at line 3549 of file cctlib.cpp.
Referenced by lazy_open_data_file().
| int PinCCTLib::PinCCTLibInit | ( | IsInterestingInsFptr | isInterestingIns, |
| FILE * | logFile, | ||
| CCTLibInstrumentInsCallback | userCallback, | ||
| VOID * | userCallbackArg, | ||
| BOOL | doDataCentric = false |
||
| ) |
Definition at line 3132 of file cctlib.cpp.
References CCT_LIB_MODE_COLLECTION, CCT_LIB_MODE_POSTMORTEM, CCTLibAppStartNotification(), CCTLibFini(), CCTLibImage(), CCTLibInstrumentImageLoad(), CCTLibInstrumentTrace(), CCTLibThreadStart(), PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibTlsKey, PinCCTLib::CCT_LIB_GLOBAL_STATE::cctLibUsageMode, Fini(), GLOBAL_STATE, InitBuffers(), InitDataCentric(), InitLogFile(), InitMapFilePrefix(), InitSegHandler(), InitXED(), OnSig(), PinCCTLib::CCT_LIB_GLOBAL_STATE::rtnSelfRecRWMutex, PinCCTLib::CCT_LIB_GLOBAL_STATE::userInstrumentationCallback, and PinCCTLib::CCT_LIB_GLOBAL_STATE::userInstrumentationCallbackArg.
Referenced by main().
| int PinCCTLib::PinCCTLibInitForPostmortemAnalysis | ( | FILE * | logFile, |
| const std::string & | serializedFilesDirectory | ||
| ) |
Definition at line 3183 of file cctlib.cpp.
References CCT_LIB_MODE_COLLECTION, CCT_LIB_MODE_POSTMORTEM, PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibTlsKey, PinCCTLib::CCT_LIB_GLOBAL_STATE::cctLibUsageMode, DeserializeMetadata(), GLOBAL_STATE, InitBuffers(), InitLogFile(), InitMapFilePrefix(), InitSegHandler(), and InitXED().
Referenced by main().
|
inlinestatic |
Definition at line 1075 of file cctlib.cpp.
References GLOBAL_STATE, GoUpCallChain(), PinCCTLib::RtnInfo::hasSelfRec, MaybeGoUpCallChain(), PinCCTLib::RtnInfo::nReturnAddrs, RememberSlotNoInTLS(), PinCCTLib::RtnInfo::rtnStart, PinCCTLib::RtnInfo::selfRecReturnAddrs, SetCallInitFlag(), PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap, PinCCTLib::CCT_LIB_GLOBAL_STATE::userInstrumentationCallback, and PinCCTLib::CCT_LIB_GLOBAL_STATE::userInstrumentationCallbackArg.
Referenced by CCTLibInstrumentTrace().
| VOID PinCCTLib::PrintFullCallingContext | ( | const ContextHandle_t | ctxtHandle | ) |
Definition at line 2346 of file cctlib.cpp.
References CCT_LIB_MODE_POSTMORTEM, PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, PinCCTLib::CCT_LIB_GLOBAL_STATE::cctLibUsageMode, ctxtHandle, GetFullCallingContextInSitu(), GetFullCallingContextPostmortem(), and GLOBAL_STATE.
Referenced by DumpInfo(), DumpRaceInfo(), ImageUnload(), main(), PrintApproximationRedundancyPairs(), PrintIPAndCallingContexts(), PrintRedundancyPairs(), PrintTopFootPrintPath(), and RunChecksAndExit().
|
static |
Definition at line 1936 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::CCTLibLogFile, PinCCTLib::CCT_LIB_GLOBAL_STATE::curPreAllocatedContextBufferIndex, getPeakRSS(), and GLOBAL_STATE.
Referenced by Fini(), and ImageUnload().
|
inline |
Definition at line 741 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::DSLock, and GLOBAL_STATE.
Referenced by Instruction(), ThreadCapturePoint(), and ThreadCreatePoint().
|
inlinestatic |
Definition at line 1024 of file cctlib.cpp.
References CCTLibGetTLS(), and PinCCTLib::ThreadData::curSlotNo.
Referenced by PopulateIPReverseMapAndAccountTraceInstructions().
|
inlinestatic |
Definition at line 572 of file cctlib.cpp.
References CCTLibGetTLS(), GET_IPNODE_FROM_CONTEXT_HANDLE, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, PinCCTLib::ThreadData::tlsLongJmpHoldBuf, PinCCTLib::ThreadData::tlsLongJmpMap, and UpdateCurTraceOnly().
Referenced by CCTLibImage().
|
static |
Definition at line 1378 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::env, and GLOBAL_STATE.
Referenced by InitSegHandler().
|
static |
Definition at line 1551 of file cctlib.cpp.
References CCTLibGetTLS(), GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::numThreads, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, SerializeCCTNode(), SERIALIZED_CCT_FILE_PREFIX, SERIALIZED_CCT_FILE_SUFFIX, PinCCTLib::ThreadData::tlsParentThreadCtxtHndl, PinCCTLib::ThreadData::tlsRootTraceNode, and PinCCTLib::ThreadData::tlsThreadId.
Referenced by SerializeMetadata().
|
static |
Definition at line 1459 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, NO_MORE_TRACE_NODES_IN_SPLAY_TREE, PinCCTLib::TraceNode::nSlots, PinCCTLib::TraceNode::traceKey, and VisitAllNodesOfSplayTree().
Referenced by SerializeAllCCTs(), and VisitAllNodesOfSplayTree().
| void PinCCTLib::SerializeMetadata | ( | const std::string & | directoryForSerializationFiles = "" | ) |
Definition at line 1878 of file cctlib.cpp.
References CCTLIB_SERIALIZATION_DEFAULT_DIR_NAME, GLOBAL_STATE, MAX_FILE_PATH, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, SerializeAllCCTs(), SerializeMouleInfo(), and SerializeTraceIps().
Referenced by Fini().
|
static |
Definition at line 1755 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, and SERIALIZED_MODULE_MAP_SUFFIX.
Referenced by SerializeMetadata().
|
static |
Definition at line 1803 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::CCT_LIB_GLOBAL_STATE::ModuleInfoMap, PIN_ExitProcess, PinCCTLib::CCT_LIB_GLOBAL_STATE::serializationDirectory, SERIALIZED_SHADOW_TRACE_IP_FILE_SUFFIX, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by SerializeMetadata().
|
inlinestatic |
Definition at line 966 of file cctlib.cpp.
References CCTLibGetTLS(), GLOBAL_STATE, PinCCTLib::ThreadData::tlsCurrentChildContextStartIndex, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, PinCCTLib::ThreadData::tlsCurrentTraceNode, PinCCTLib::ThreadData::tlsInitiatedCall, PinCCTLib::TraceNode::traceKey, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by PopulateIPReverseMapAndAccountTraceInstructions().
|
inlinestatic |
Definition at line 1966 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, GET_IPNODE_FROM_CONTEXT_HANDLE, GLOBAL_STATE, ip, PinCCTLib::TraceNode::nSlots, PinCCTLib::TraceNode::traceKey, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by newCCT_hpcrun_write().
|
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().
|
inlinestatic |
Definition at line 3734 of file cctlib.cpp.
References SPINLOCK_UNLOCKED_VALUE.
Referenced by hpcrun_open_profile_file().
|
static |
Definition at line 1171 of file cctlib.cpp.
References ip, TraceSplay::key, TraceSplay::left, REGULAR_SPLAY_TREE, and TraceSplay::right.
|
inline |
Definition at line 734 of file cctlib.cpp.
References PinCCTLib::CCT_LIB_GLOBAL_STATE::DSLock, and GLOBAL_STATE.
Referenced by Instruction(), ThreadCapturePoint(), and ThreadCreatePoint().
|
inlinestatic |
Definition at line 767 of file cctlib.cpp.
References GLOBAL_STATE, ReleaseLock(), TakeLock(), PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCaptureCount, PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCreateCount, PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCreatorCtxtHndl, PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCreatorTraceNode, PinCCTLib::ThreadData::tlsParentThreadCtxtHndl, and PinCCTLib::ThreadData::tlsParentThreadTraceNode.
Referenced by CCTLibThreadStart().
|
inlinestatic |
Definition at line 748 of file cctlib.cpp.
References CCTLibGetTLS(), GLOBAL_STATE, ReleaseLock(), TakeLock(), PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCaptureCount, PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCreateCount, PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCreatorCtxtHndl, PinCCTLib::CCT_LIB_GLOBAL_STATE::threadCreatorTraceNode, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
Referenced by CCTLibImage().
|
static |
Definition at line 644 of file cctlib.cpp.
References GLOBAL_STATE, PinCCTLib::TraceNode::nSlots, PinCCTLib::TraceNode::traceKey, and PinCCTLib::CCT_LIB_GLOBAL_STATE::traceShadowMap.
Referenced by FindHandlerFrameForLandingPad().
| void PinCCTLib::tranverseIPs | ( | NewIPNode * | curIPNode, |
| TraceSplay * | childCtxtStartIdx, | ||
| uint64_t * | nodeCount | ||
| ) |
Definition at line 4031 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, PinCCTLib::NewIPNode::childIPNodes, constructIPNode(), findSameIP(), GET_IPNODE_FROM_CONTEXT_HANDLE_CHECKED, PinCCTLib::NewIPNode::ID, PinCCTLib::TraceSplay::left, mergeIP(), PinCCTLib::TraceNode::nSlots, PinCCTLib::TraceSplay::right, PinCCTLib::NewIPNode::tmpSplay, and PinCCTLib::TraceSplay::value.
Referenced by mergeIP(), and newCCT_hpcrun_write().
| 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().
|
inlinestatic |
Definition at line 549 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx.
Referenced by CCTLibInitThreadData(), and InstrumentTraceEntry().
|
inlinestatic |
Definition at line 543 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, PinCCTLib::ThreadData::tlsCurrentChildContextStartIndex, PinCCTLib::ThreadData::tlsCurrentCtxtHndl, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
|
inlinestatic |
Definition at line 553 of file cctlib.cpp.
References PinCCTLib::TraceNode::childCtxtStartIdx, PinCCTLib::ThreadData::tlsCurrentChildContextStartIndex, and PinCCTLib::ThreadData::tlsCurrentTraceNode.
Referenced by GoUpCallChain(), InstrumentTraceEntry(), MaybeGoUpCallChain(), and RestoreSigLongJmpCtxt().
|
static |
Definition at line 1444 of file cctlib.cpp.
References PinCCTLib::TraceSplay::left, PinCCTLib::TraceSplay::right, SerializeCCTNode(), and PinCCTLib::TraceSplay::value.
Referenced by SerializeCCTNode().
| union { ... } |
| union { ... } |
| uint8_t PinCCTLib::bits |
Definition at line 3392 of file cctlib.cpp.
| uint64_t PinCCTLib::bits_big[2] |
Definition at line 3417 of file cctlib.cpp.
| const uint PinCCTLib::bufSZ = 32 |
Definition at line 3513 of file cctlib.cpp.
Referenced by lazy_open_data_file().
| ContextHandle_t PinCCTLib::ctxtHandle |
Definition at line 52 of file cctlib.H.
Referenced by DumpCallStack(), GetParentIPs(), GetTraceStartHandle(), and PrintFullCallingContext().
| ContextHandle_t PinCCTLib::ctxtHandle2 |
| unsigned PinCCTLib::cycles |
Definition at line 3398 of file cctlib.cpp.
|
static |
Definition at line 3487 of file cctlib.cpp.
Referenced by lazy_open_data_file().
|
static |
Definition at line 3488 of file cctlib.cpp.
Referenced by lazy_open_data_file().
| char* PinCCTLib::description |
Definition at line 3422 of file cctlib.cpp.
| std::string PinCCTLib::dirName |
Definition at line 3500 of file cctlib.cpp.
Referenced by hpcrun_open_file(), and init_hpcrun_format().
| std::string PinCCTLib::disassembly |
Definition at line 51 of file cctlib.H.
Referenced by DumpCallStack().
|
static |
Definition at line 3492 of file cctlib.cpp.
Referenced by hpcrun_files_init(), and hpcrun_open_file().
|
static |
Definition at line 3484 of file cctlib.cpp.
Referenced by lazy_open_data_file().
| std::string* PinCCTLib::filename |
Definition at line 3501 of file cctlib.cpp.
Referenced by compute_static_var(), ComputeVarBounds(), init_hpcrun_format(), lazy_open_data_file(), newCCT_hpcrun_selection_write(), and newCCT_hpcrun_write().
| std::string PinCCTLib::filePath |
Definition at line 50 of file cctlib.H.
Referenced by GetFullCallingContextInSitu(), and GetLineFromInfo().
|
static |
Definition at line 3491 of file cctlib.cpp.
Referenced by hpcrun_open_profile_file().
| hpcrun_metricFlags_t PinCCTLib::flags |
Definition at line 3425 of file cctlib.cpp.
Referenced by hpcrun_fmt_epochHdr_fwrite(), hpcrun_open_file(), and ThreadStartRegister().
| char* PinCCTLib::format |
Definition at line 3429 of file cctlib.cpp.
| char* PinCCTLib::formula |
Definition at line 3428 of file cctlib.cpp.
|
static |
Definition at line 1679 of file cctlib.cpp.
Referenced by DottifyAllCCTs(), and DottifyCCTNode().
| 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().
|
static |
Definition at line 3506 of file cctlib.cpp.
Referenced by hpcrun_fmt_hdrwrite().
|
static |
Definition at line 3507 of file cctlib.cpp.
Referenced by hpcrun_fmt_hdrwrite().
|
static |
Definition at line 3511 of file cctlib.cpp.
Referenced by hpcrun_fmt_epochHdr_fwrite().
|
static |
Definition at line 3512 of file cctlib.cpp.
Referenced by hpcrun_fmt_epochHdr_fwrite().
|
static |
Definition at line 3504 of file cctlib.cpp.
Referenced by hpcrun_fmt_hdrwrite().
|
static |
Definition at line 3505 of file cctlib.cpp.
Referenced by hpcrun_fmt_hdrwrite().
|
static |
Definition at line 3509 of file cctlib.cpp.
Referenced by hpcrun_fmt_hdrwrite().
|
static |
Definition at line 3510 of file cctlib.cpp.
Referenced by hpcrun_fmt_hdrwrite().
| const hpcrun_metricFlags_t PinCCTLib::hpcrun_metricFlags_NULL |
Definition at line 3472 of file cctlib.cpp.
Referenced by hpcrun_set_metric_info_w_fn().
|
static |
Definition at line 3508 of file cctlib.cpp.
Referenced by hpcrun_open_profile_file().
| bool PinCCTLib::is_frequency_metric |
Definition at line 3430 of file cctlib.cpp.
|
static |
Definition at line 3492 of file cctlib.cpp.
Referenced by hpcrun_files_init(), and hpcrun_open_file().
| uint32_t PinCCTLib::lineNo |
Definition at line 53 of file cctlib.H.
Referenced by GetFullCallingContextInSitu(), GetFullCallingContextPostmortem(), and GetLineFromInfo().
| volatile bool PinCCTLib::locked |
Definition at line 227 of file cctlib.cpp.
|
static |
Definition at line 3495 of file cctlib.cpp.
Referenced by hpcrun_files_init().
|
static |
Definition at line 3496 of file cctlib.cpp.
Referenced by hpcrun_files_init().
|
static |
Definition at line 3497 of file cctlib.cpp.
Referenced by hpcrun_files_init().
| uint64_t PinCCTLib::metric |
Definition at line 60 of file cctlib.H.
Referenced by computeMetricVal(), MemFunc(), RecordLargeMemRead(), MemAnalysis< AccessLen >::RecordNByteMemRead(), RecordOneByteMemRead(), and UpdateFootPrint().
| const metric_desc_t PinCCTLib::metricDesc_NULL |
Definition at line 3451 of file cctlib.cpp.
Referenced by hpcrun_set_metric_info_w_fn().
|
static |
Definition at line 3492 of file cctlib.cpp.
Referenced by hpcrun_files_init(), and hpcrun_open_file().
|
static |
Definition at line 1457 of file cctlib.cpp.
Referenced by DeserializeCCTNode(), and SerializeCCTNode().
| uint16_t PinCCTLib::partner |
Definition at line 3407 of file cctlib.cpp.
| ContextHandle_t PinCCTLib::pathHandle |
| uint64_t PinCCTLib::period |
Definition at line 3426 of file cctlib.cpp.
Referenced by hpcrun_set_metric_info_w_fn().
| volatile bool PinCCTLib::predecessorWasWriter |
Definition at line 228 of file cctlib.cpp.
| metric_desc_properties_t PinCCTLib::properties |
Definition at line 3427 of file cctlib.cpp.
| uint8_t PinCCTLib::show |
Definition at line 3408 of file cctlib.cpp.
| uint8_t PinCCTLib::showPercent |
Definition at line 3409 of file cctlib.cpp.
|
static |
Definition at line 2479 of file cctlib.cpp.
Referenced by __attribute__(), GetDataObjectHandle(), InitShadowSpaceForDataCentric(), anonymous_namespace{shadow_memory_test.cpp}::TEST(), test_concurrent_free_fn_matches_base_fn(), test_concurrent_init_pattern_data_centric_shape(), test_concurrent_multi_thread(), test_concurrent_multi_type_tuple(), test_concurrent_write_read_single(), test_shadow_base_fn_matches_free_fn(), test_shadow_free_fn_matches_base_fn(), test_shadow_init_pattern(), test_shadow_multi_type_tuple(), test_shadow_multiple_addresses_same_page(), test_shadow_multiple_pages(), test_shadow_pointer_stable(), and test_shadow_write_read_single().
| 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().
| uint64_t PinCCTLib::unused |
Definition at line 3386 of file cctlib.cpp.
| uint8_t PinCCTLib::unused0 |
Definition at line 3406 of file cctlib.cpp.
| uint64_t PinCCTLib::unused1 |
Definition at line 3410 of file cctlib.cpp.
| MetricFlags_ValFmt_t PinCCTLib::valFmt |
Definition at line 3405 of file cctlib.cpp.
Referenced by hpcrun_set_metric_info_w_fn().
| MetricFlags_ValTy_t PinCCTLib::valTy |
Definition at line 3404 of file cctlib.cpp.