CCTLib
Calling-context and data-object attribution library for Intel Pin
cctlib.H File Reference
#include "pin.H"
#include <stdint.h>
#include <stdio.h>
#include <string>
#include <vector>
+ Include dependency graph for cctlib.H:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 PinCCTLib
 

Macros

#define MAX_CCT_PRINT_DEPTH   (20)
 
#define MAX_CCT_PATH_DEPTH   (100)
 
#define MAX_FILE_PATH   (200)
 
#define INTERESTING_INS_ALL   (PinCCTLib::InterestingInsAll)
 
#define INTERESTING_INS_NONE   (PinCCTLib::InterestingInsNone)
 
#define INTERESTING_INS_MEMORY_ACCESS   (PinCCTLib::InterestingInsMemoryAccess)
 
#define USE_SHADOW_FOR_DATA_CENTRIC
 

Typedefs

using PinCCTLib::ContextHandle_t = uint32_t
 
using PinCCTLib::DataHandle_t = struct DataHandle_t { uint8_t objectType
 
using PinCCTLib::Context = struct Context { std::string functionName
 
using PinCCTLib::HPCRunCCT_t = struct HPCRunCCT_t { ContextHandle_t ctxtHandle1
 
using PinCCTLib::IsInterestingInsFptr = BOOL(*)(INS)
 
using PinCCTLib::CCTLibInstrumentInsCallback = VOID(*)(INS, VOID *, const uint32_t)
 

Enumerations

enum  PinCCTLib::ObjectTypeEnum { PinCCTLib::STACK_OBJECT , PinCCTLib::DYNAMIC_OBJECT , PinCCTLib::STATIC_OBJECT , PinCCTLib::UNKNOWN_OBJECT }
 

Functions

BOOL PinCCTLib::InterestingInsNone (INS ins)
 
BOOL PinCCTLib::InterestingInsAll (INS ins)
 
BOOL PinCCTLib::InterestingInsMemoryAccess (INS ins)
 
int PinCCTLib::PinCCTLibInit (IsInterestingInsFptr isInterestingIns, FILE *logFile, CCTLibInstrumentInsCallback userCallback, VOID *userCallbackArg, BOOL doDataCentric=false)
 
int PinCCTLib::PinCCTLibInitForPostmortemAnalysis (FILE *logFile, const std::string &serializedFilesDirectory)
 
ContextHandle_t PinCCTLib::GetContextHandle (const THREADID id, const uint32_t slot)
 
DataHandle_t PinCCTLib::GetDataObjectHandle (VOID *address, const THREADID threadId)
 
char * PinCCTLib::GetStringFromStringPool (const uint32_t index)
 
VOID PinCCTLib::PrintFullCallingContext (const ContextHandle_t ctxtHandle)
 
VOID PinCCTLib::GetFullCallingContext (const ContextHandle_t curCtxtHndle, std::vector< Context > &contextVec)
 
void PinCCTLib::SerializeMetadata (const std::string &directoryForSerializationFiles="")
 
void PinCCTLib::DottifyAllCCTs ()
 
bool PinCCTLib::HaveSameCallerPrefix (ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
bool PinCCTLib::IsSameSourceLine (ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
ContextHandle_t PinCCTLib::GetTraceStartHandle (ContextHandle_t ctxtHandle)
 
void PinCCTLib::AppendLoadModulesToStream (std::iostream &ios)
 
void PinCCTLib::LogContexts (std::iostream &ios, ContextHandle_t ctxt1, ContextHandle_t ctxt2)
 
int PinCCTLib::init_hpcrun_format (int argc, char *argv[], void(*mergeFunc)(void *des, void *src)=nullptr, uint64_t(*computeMetricVal)(void *metric)=nullptr, bool skip=false)
 
int PinCCTLib::hpcrun_create_metric (const char *name)
 
int PinCCTLib::newCCT_hpcrun_write (THREADID threadid)
 
int PinCCTLib::newCCT_hpcrun_build_cct (std::vector< HPCRunCCT_t * > &OldNodes, THREADID threadid)
 
int PinCCTLib::newCCT_hpcrun_selection_write (THREADID threadid)
 
void PinCCTLib::GetParentIPs (ContextHandle_t ctxtHandle, std::vector< ADDRINT > &parentIPs)
 

Variables

union {
   ContextHandle_t   PinCCTLib::pathHandle
 
   uint32_t   PinCCTLib::symName
 
}; 
 
std::string PinCCTLib::filePath
 
std::string PinCCTLib::disassembly
 
ContextHandle_t PinCCTLib::ctxtHandle
 
uint32_t PinCCTLib::lineNo
 
ADDRINT PinCCTLib::ip
 
ContextHandle_t PinCCTLib::ctxtHandle2
 
uint64_t PinCCTLib::metric
 
int PinCCTLib::metric_id
 

Macro Definition Documentation

◆ INTERESTING_INS_ALL

#define INTERESTING_INS_ALL   (PinCCTLib::InterestingInsAll)

Definition at line 85 of file cctlib.H.

◆ INTERESTING_INS_MEMORY_ACCESS

#define INTERESTING_INS_MEMORY_ACCESS   (PinCCTLib::InterestingInsMemoryAccess)

Definition at line 87 of file cctlib.H.

◆ INTERESTING_INS_NONE

#define INTERESTING_INS_NONE   (PinCCTLib::InterestingInsNone)

Definition at line 86 of file cctlib.H.

◆ MAX_CCT_PATH_DEPTH

#define MAX_CCT_PATH_DEPTH   (100)

Definition at line 17 of file cctlib.H.

◆ MAX_CCT_PRINT_DEPTH

#define MAX_CCT_PRINT_DEPTH   (20)

Definition at line 16 of file cctlib.H.

◆ MAX_FILE_PATH

#define MAX_FILE_PATH   (200)

Definition at line 18 of file cctlib.H.

◆ USE_SHADOW_FOR_DATA_CENTRIC

#define USE_SHADOW_FOR_DATA_CENTRIC

Definition at line 203 of file cctlib.H.