common: print tracing info for ASSERT() failures
authorBrian Norris <banorris@uci.edu>
Fri, 14 Sep 2012 19:58:05 +0000 (12:58 -0700)
committerBrian Norris <banorris@uci.edu>
Tue, 18 Sep 2012 17:45:01 +0000 (10:45 -0700)
This adds a global model_print_summary() function, so we can view the current
ModelChecker summary info when we hit an assertion.

common.cc
common.h

index 8cb649bbb10db23b0cb2b4cd2e374e294e73390c..ac5cb59601ba7a6025ac1d8d5f24f62fef0666b7 100644 (file)
--- a/common.cc
+++ b/common.cc
@@ -3,6 +3,7 @@
 #include <stdlib.h>
 
 #include "common.h"
 #include <stdlib.h>
 
 #include "common.h"
+#include "model.h"
 
 #define MAX_TRACE_LEN 100
 
 
 #define MAX_TRACE_LEN 100
 
@@ -23,3 +24,8 @@ void print_trace(void)
 
        free(strings);
 }
 
        free(strings);
 }
+
+void model_print_summary(void)
+{
+       model->print_summary();
+}
index 80bc9ad6e8c6977fb3622b8754c1982cf64c25f5..2dc8b7d9e8e59457fd4bfee6b850af028414d9c9 100644 (file)
--- a/common.h
+++ b/common.h
@@ -22,6 +22,8 @@
 do { \
        if (!(expr)) { \
                fprintf(stderr, "Error: assertion failed in %s at line %d\n", __FILE__, __LINE__); \
 do { \
        if (!(expr)) { \
                fprintf(stderr, "Error: assertion failed in %s at line %d\n", __FILE__, __LINE__); \
+               print_trace(); \
+               model_print_summary(); \
                exit(EXIT_FAILURE); \
        } \
 } while (0);
                exit(EXIT_FAILURE); \
        } \
 } while (0);
@@ -29,5 +31,6 @@ do { \
 #define error_msg(...) fprintf(stderr, "Error: " __VA_ARGS__)
 
 void print_trace(void);
 #define error_msg(...) fprintf(stderr, "Error: " __VA_ARGS__)
 
 void print_trace(void);
+void model_print_summary(void);
 
 #endif /* __COMMON_H__ */
 
 #endif /* __COMMON_H__ */