X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=snapshot.cc;h=a50835d1cca27ecd2c28aac29e798791dce3f69c;hb=8b76d39eff3f6e27d416123292641ae36f88ca06;hp=d8eda7f5a3dd8448f0091af1e420e73bf7fb743f;hpb=970ac635b9f28be87f037da33f1e8ac57b89fd47;p=model-checker.git diff --git a/snapshot.cc b/snapshot.cc index d8eda7f..a50835d 100644 --- a/snapshot.cc +++ b/snapshot.cc @@ -178,18 +178,13 @@ void initSnapShotLibrary(unsigned int numbackingpages, createSharedLibrary(); //step 2 setup the stack context. - - int alreadySwapped = 0; - getcontext( &savedSnapshotContext ); - if( !alreadySwapped ){ - alreadySwapped = 1; - ucontext_t swappedContext, newContext; - getcontext( &newContext ); - newContext.uc_stack.ss_sp = sTheRecord->mStackBase; - newContext.uc_stack.ss_size = STACK_SIZE_DEFAULT; - makecontext( &newContext, entryPoint, 0 ); - swapcontext( &swappedContext, &newContext ); - } + ucontext_t newContext; + getcontext( &newContext ); + newContext.uc_stack.ss_sp = sTheRecord->mStackBase; + newContext.uc_stack.ss_size = STACK_SIZE_DEFAULT; + makecontext( &newContext, entryPoint, 0 ); + /* switch to a new entryPoint context, on a new stack */ + swapcontext(&savedSnapshotContext, &newContext); //add the code to take a snapshot here... //to return to user process, do a second swapcontext...