int main(int argc, char * argv[]){ //If we want to debug the program manually setup the proper options in order to attach an external debugger if(Config::ATTACH_DEBUGGER){ initDebug(); } MYINFO("Strating prototype ins"); FilterHandler *filterH = FilterHandler::getInstance(); //set the filters for the libraries MYINFO("%s",Config::FILTER_WRITES_ENABLES.c_str()); filterH->setFilters(Config::FILTER_WRITES_ENABLES); //get the start time of the execution (benchmark) tStart = clock(); // Initialize pin PIN_InitSymbols(); if (PIN_Init(argc, argv)) return Usage(); INS_AddInstrumentFunction(Instruction,0); PIN_AddThreadStartFunction(OnThreadStart, 0); // Register ImageUnload to be called when an image is unloaded IMG_AddInstrumentFunction(imageLoadCallback, 0); // Register Fini to be called when the application exits PIN_AddFiniFunction(Fini, 0); // Start the program, never returns PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { MYLOG("Strating prototype ins\n"); FilterHandler *filterH = FilterHandler::getInstance(); filterH->setFilters("teb"); tStart = clock(); // Initialize pin PIN_InitSymbols(); if (PIN_Init(argc, argv)) return Usage(); // TRACE_AddInstrumentFunction(Trace,0); INS_AddInstrumentFunction(Instruction,0); PIN_AddThreadStartFunction(OnThreadStart, 0); // Register ImageLoad to be called when an image is loaded IMG_AddInstrumentFunction(imageLoadCallback, 0); // Register ImageUnload to be called when an image is unloaded IMG_AddUnloadFunction(ImageUnloadCallback, 0); //PIN_AddApplicationStartFunction(bootstrap, 0); // Register Fini to be called when the application exits PIN_AddFiniFunction(Fini, 0); // Start the program, never returns PIN_StartProgram(); return 0; }