X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=common.cc;h=f37f92f1ba7434cdddd365564048b711ddc40816;hp=8cb649bbb10db23b0cb2b4cd2e374e294e73390c;hb=dc0339b4449ed07afa7c69936108146d72676a68;hpb=70515e16c177a40e1053285262ff34e10c33e57e diff --git a/common.cc b/common.cc index 8cb649bb..f37f92f1 100644 --- a/common.cc +++ b/common.cc @@ -2,13 +2,21 @@ #include #include +#include + #include "common.h" +#include "model.h" +#include "stacktrace.h" #define MAX_TRACE_LEN 100 +#define CONFIG_STACKTRACE /** Print a backtrace of the current program state. */ void print_trace(void) { +#ifdef CONFIG_STACKTRACE + print_stacktrace(stdout); +#else void *array[MAX_TRACE_LEN]; char **strings; int size, i; @@ -22,4 +30,25 @@ void print_trace(void) printf("\t%s\n", strings[i]); free(strings); +#endif /* CONFIG_STACKTRACE */ +} + +void model_print_summary(void) +{ + model->print_summary(); +} + +void assert_hook(void) +{ + printf("Add breakpoint to line %u in file %s.\n",__LINE__,__FILE__); +} + +void model_assert(bool expr, const char *file, int line) +{ + if (!expr) { + char msg[100]; + sprintf(msg, "Program has hit assertion in file %s at line %d\n", + file, line); + model->assert_user_bug(msg); + } }