sprintf(buffer, "exec%u.dot",schedule_graph);
schedule_graph++;
int file=open(buffer,O_WRONLY|O_TRUNC|O_CREAT, S_IRWXU);
- dprintf(file, "digraph execution {\n");
+ model_dprintf(file, "digraph execution {\n");
EPRecord *last=NULL;
for(uint i=0;i<EPList->size();i++) {
EPValue *epv=(*EPList)[i];
if (epv==NULL)
continue;
EPRecord *record=epv->getRecord();
- dprintf(file, "%lu[label=\"",(uintptr_t)record);
+ model_dprintf(file, "%lu[label=\"",(uintptr_t)record);
record->print(file);
- dprintf(file, "\"];\n");
+ model_dprintf(file, "\"];\n");
if (last!=NULL)
- dprintf(file, "%lu->%lu;", (uintptr_t) last, (uintptr_t) record);
+ model_dprintf(file, "%lu->%lu;", (uintptr_t) last, (uintptr_t) record);
last=record;
}
- dprintf(file, "}\n");
+ model_dprintf(file, "}\n");
close(file);
}
SnapList<EPValue *> * list=(*storebuffer)[id_to_int(tid)];
EPValue * epval=list->front();
list->pop_front();
+ if (DBG_ENABLED()) {
+ model_print("tid = %lu: ", tid);
+ }
doStore(epval);
}
if (!currexecpoint->directInLoop()) {
breakstate=getOrCreateCurrRecord(NONLOCALTRANS, NULL, 0, 0, 8, false);
currexecpoint->incrementTop();
+ } else {
+ breakstate=getOrCreateCurrRecord(LOOPEXIT, NULL, 0, 0, 8, false);
+ currexecpoint->incrementTop();
}
/* Get Last Record */
if (loopenter->getNextRecord()==NULL) {
loopenter->setNextRecord(labelrec);
}
- if (breakstate!=NULL) {
- breakstate->setNextRecord(labelrec);
- }
+ breakstate->setNextRecord(labelrec);
currexecpoint->incrementTop();
}