ck-perf/trace-recordreplay.C

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * $Source: /cvsroot/charm/src/ck-perf/trace-recordreplay.C,v $
00003  * $Author: gioachin $
00004  * $Date: 2007-09-11 21:43:01 $
00005  * $Revision: 2.2 $
00006  *****************************************************************************/
00007 
00012 
00013 #include "charm++.h"
00014 #include "trace-recordreplay.h"
00015 #include "signal.h"
00016 
00017 #define DEBUGF(x)  // CmiPrintf x
00018 
00019 #define VER   4.0
00020 
00021 #define INVALIDEP     -2
00022 
00023 CkpvStaticDeclare(TraceRecordReplay*, _trace);
00024 
00029 void _createTracerecordreplay(char **argv)
00030 {
00031   DEBUGF(("%d createTraceRecordReplay\n", CkMyPe()));
00032   CkpvInitialize(TraceRecordReplay*, _trace);
00033   CkpvAccess(_trace) = new  TraceRecordReplay(argv);
00034   CkpvAccess(_traces)->addTrace(CkpvAccess(_trace));
00035 }
00036 
00037 typedef void (*sigfunc)(int);
00038 CkpvStaticDeclare(sigfunc, segfault_sig);
00039 
00040 void segfault_signal(int sig) {
00041   printf("Segfault handler reached!\n");
00042   signal(SIGSEGV, CkpvAccess(segfault_sig));
00043 }
00044 
00045 TraceRecordReplay::TraceRecordReplay(char **argv):curevent(1)
00046 {
00047   //CkpvAccess(segfault_sig) = signal(SIGSEGV, segfault_signal);
00048 }
00049 
00050 void TraceRecordReplay::beginExecute(envelope *e)
00051 {
00052   // no message means thread execution
00053   if (e==NULL) {
00054   }
00055   else {
00056     e->setEvent(curevent++);
00057   }  
00058 }
00059 
00060 
00061 void TraceRecordReplay::creation(envelope *e, int ep, int num)
00062 {
00063   e->setEvent(curevent++);
00064 }
00065 
00066 

Generated on Sun Jun 29 13:29:10 2008 for Charm++ by  doxygen 1.5.1