X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=datarace.cc;h=270e52310730febec1e97956c787a06c7b670b7e;hb=1645d16c883f765168a26892f07d003963d5b68c;hp=293743052858c8029fb685ff246ac071f38b821e;hpb=e00292b5adf2b85eb1c6e2399159b5c28fde48eb;p=model-checker.git diff --git a/datarace.cc b/datarace.cc index 2937430..270e523 100644 --- a/datarace.cc +++ b/datarace.cc @@ -1,9 +1,10 @@ #include "datarace.h" #include "model.h" -#include "threads.h" +#include "threads-model.h" #include #include #include "mymemory.h" +#include "clockvector.h" struct ShadowTable *root; std::vector unrealizedraces; @@ -119,11 +120,15 @@ bool checkDataRaces() { return false; } -void printRace(struct DataRace * race) { - printf("Datarace detected\n"); - printf("Location %p\n", race->address); - printf("Initial access: thread %u clock %u, iswrite %u\n",race->oldthread,race->oldclock, race->isoldwrite); - printf("Second access: thread %u clock %u, iswrite %u\n", race->newaction->get_tid(), race->newaction->get_seq_number() , race->isnewwrite); +void printRace(struct DataRace *race) +{ + printf("Datarace detected @ address %p:\n", race->address); + printf(" Access 1: %5s in thread %2d @ clock %3u\n", + race->isoldwrite ? "write" : "read", + id_to_int(race->oldthread), race->oldclock); + printf(" Access 2: %5s in thread %2d @ clock %3u\n", + race->isnewwrite ? "write" : "read", + id_to_int(race->newaction->get_tid()), race->newaction->get_seq_number()); } /** This function does race detection for a write on an expanded record. */