The example below can be found in InstLibExamples/alarm_icount.cpp
#include <iostream> #include "pin.H" #include "instlib.H" INSTLIB::ALARM_ICOUNT ialarm; VOID Handler(VOID * val, CONTEXT * ctxt, VOID * ip, THREADID tid) { INSTLIB::ALARM_ICOUNT * al = static_cast<INSTLIB::ALARM_ICOUNT *>(val); std::cout << "Alarm fired, resetting" << endl; al->SetAlarm(50000, Handler, al); } // argc, argv are the entire command line, including pin -t <toolname> -- ... int main(int argc, char * argv[]) { // Initialize pin PIN_Init(argc, argv); // Activate alarm, must be done before PIN_StartProgram ialarm.Activate(); ialarm.SetAlarm(50000, Handler, &ialarm); // Start the program, never returns PIN_StartProgram(); return 0; }
1.4.6