示例#1
0
  void handle_analyze (void)
  {
    ++ this->count_;

    if ((this->count_ % 10000) == 0)
      PIN_Detach ();
  }
VOID docount() 
{ 
    if (++icount ==  icountMax)
	{
		fprintf(stderr, "Send detach request form analysis routine after %d instructions\n", icountMax);
		PIN_Detach();
	}
}
VOID sleeping_thread(VOID* v)
{
    if(KnobTimeoutMs.Value() == "infinite")
        return;

    PIN_Sleep(atoi(KnobTimeoutMs.Value().c_str()));
    PIN_Detach();
}
示例#4
0
VOID docount() 
{
    icount++;

    // Release control of application if 10000 
    // instructions have been executed
    if ((icount % 10000) == 0) 
    {
        PIN_Detach();
    }
}
示例#5
0
/*
* stop the execution of the application inside the
* tag-aware VM; the execution of the application
* is not interrupted
*
* NOTE: it also performs the appropriate cleanup
*/
void
libdft_die(void)
{
	/* deallocate the resources needed for the tagmap */
	tagmap_free();

	/*
	* detach Pin from the application;
	* the application will continue to execute natively
	*/
	PIN_Detach();
}
示例#6
0
VOID  do_call_indirect(ADDRINT target, BOOL taken)
{
    if( !taken ) return;

    if( counter == 0 )
    {
        DumpHistogram(Out);
        Out << flush;

        counter = KnobThreshold.Value();
        updates++;
        if ( updates == KnobDetachUpdates.Value() )
        {
            PIN_Detach();
        }
    }

    counter--;

    RtnMap[target]++;
}
示例#7
0
static PyObject *Triton_detachProcess(PyObject *self, PyObject *noarg) {
  PIN_Detach();
  analysisTrigger.update(false);
  Py_INCREF(Py_None);
  return Py_None;
}
void DetachFunc(){
	PIN_Detach();
}