20 PIN_ERROR(
"CCTLib client Pin tool to gather calling context on each instruction.\n" + KNOB_BASE::StringKnobSummary() +
"\n");
33 char* envPath = getenv(
"CCTLIB_CLIENT_OUTPUT_FILE");
37 snprintf(name,
sizeof(name),
"%s", envPath);
40 gethostname(name + strlen(name),
MAX_FILE_PATH - strlen(name));
42 sprintf(name + strlen(name),
"%d", pid);
43 cerr <<
"\n Creating log file at:" << name <<
"\n";
48 for (
int i = 0; i < argc; i++) {
60 INS_InsertPredicatedCall(ins, IPOINT_BEFORE, (AFUNPTR)
SimpleCCTQuery, IARG_THREAD_ID, IARG_UINT32, slot, IARG_END);
63 int main(
int argc,
char* argv[]) {
65 if (PIN_Init(argc, argv))
int main(int argc, char *argv[])
void ClientInit(int argc, char *argv[])
VOID SimpleCCTQuery(THREADID id, const uint32_t slot)
VOID InstrumentInsCallback(INS ins, VOID *v, const uint32_t slot)
#define INTERESTING_INS_ALL
int PinCCTLibInit(IsInterestingInsFptr isInterestingIns, FILE *logFile, CCTLibInstrumentInsCallback userCallback, VOID *userCallbackArg, BOOL doDataCentric=false)
ContextHandle_t GetContextHandle(const THREADID id, const uint32_t slot)