summaryrefslogtreecommitdiff
path: root/src/main/util.cpp
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2013-01-30 18:55:44 -0500
committerMorgan Deters <mdeters@cs.nyu.edu>2013-02-04 17:54:42 -0500
commit00514e3804ebde7053ba095c678625a9035dc5e3 (patch)
treec9de4824324698c214dd8dbbdf96b0a426ddb40d /src/main/util.cpp
parent55e24949a3464947d098eeeb627049b04a4af4a3 (diff)
driver::totalTime statistic is now reported correctly on crashes, too
Diffstat (limited to 'src/main/util.cpp')
-rw-r--r--src/main/util.cpp10
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();
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback