X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=common.cc;h=f37f92f1ba7434cdddd365564048b711ddc40816;hb=dc0339b4449ed07afa7c69936108146d72676a68;hp=ac5cb59601ba7a6025ac1d8d5f24f62fef0666b7;hpb=4203bdeef61d936086b63b807a115d266825ff2e;p=c11tester.git diff --git a/common.cc b/common.cc index ac5cb596..f37f92f1 100644 --- a/common.cc +++ b/common.cc @@ -2,14 +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; @@ -23,9 +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); + } +}