diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2013-01-30 18:55:44 -0500 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2013-02-04 17:54:42 -0500 |
commit | 00514e3804ebde7053ba095c678625a9035dc5e3 (patch) | |
tree | c9de4824324698c214dd8dbbdf96b0a426ddb40d /src/main/util.cpp | |
parent | 55e24949a3464947d098eeeb627049b04a4af4a3 (diff) |
driver::totalTime statistic is now reported correctly on crashes, too
Diffstat (limited to 'src/main/util.cpp')
-rw-r--r-- | src/main/util.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/util.cpp b/src/main/util.cpp index 5e7436580..d4d3e96d8 100644 --- a/src/main/util.cpp +++ b/src/main/util.cpp @@ -58,6 +58,7 @@ bool segvNoSpin = false; void timeout_handler(int sig, siginfo_t* info, void*) { fprintf(stderr, "CVC4 interrupted by timeout.\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } abort(); @@ -67,6 +68,7 @@ void timeout_handler(int sig, siginfo_t* info, void*) { void sigint_handler(int sig, siginfo_t* info, void*) { fprintf(stderr, "CVC4 interrupted by user.\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } abort(); @@ -92,6 +94,7 @@ void segv_handler(int sig, siginfo_t* info, void* c) { if(segvNoSpin) { fprintf(stderr, "No-spin requested, aborting...\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } abort(); @@ -112,6 +115,7 @@ void segv_handler(int sig, siginfo_t* info, void* c) { cerr << "Looks like a NULL pointer was dereferenced." << endl; } if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } abort(); @@ -125,6 +129,7 @@ void ill_handler(int sig, siginfo_t* info, void*) { if(segvNoSpin) { fprintf(stderr, "No-spin requested, aborting...\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } abort(); @@ -138,6 +143,7 @@ void ill_handler(int sig, siginfo_t* info, void*) { #else /* CVC4_DEBUG */ fprintf(stderr, "CVC4 executed an illegal instruction.\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } abort(); @@ -162,6 +168,7 @@ void cvc4unexpected() { if(segvNoSpin) { fprintf(stderr, "No-spin requested.\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } set_terminate(default_terminator); @@ -175,6 +182,7 @@ void cvc4unexpected() { #else /* CVC4_DEBUG */ fprintf(stderr, "CVC4 threw an \"unexpected\" exception.\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } set_terminate(default_terminator); @@ -188,6 +196,7 @@ void cvc4terminate() { "Perhaps an exception was thrown during stack unwinding. " "(Don't do that.)\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } default_terminator(); @@ -196,6 +205,7 @@ void cvc4terminate() { "CVC4 was terminated by the C++ runtime.\n" "Perhaps an exception was thrown during stack unwinding.\n"); if((*pOptions)[options::statistics] && pExecutor != NULL) { + pTotalTime->stop(); pExecutor->flushStatistics(cerr); } default_terminator(); |