projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into pldi13
[model-checker.git]
/
common.cc
diff --git
a/common.cc
b/common.cc
index e05e094ea0105a9c2ce8e221cf95a1613d21074b..f4aa7ecefa023417c7eec4680e38e1c25a5cc13b 100644
(file)
--- a/
common.cc
+++ b/
common.cc
@@
-2,14
+2,21
@@
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
+#include <model-assert.h>
+
#include "common.h"
#include "model.h"
#include "common.h"
#include "model.h"
+#include "stacktrace.h"
#define MAX_TRACE_LEN 100
#define MAX_TRACE_LEN 100
+#define CONFIG_STACKTRACE
/** Print a backtrace of the current program state. */
void print_trace(void)
{
/** 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;
void *array[MAX_TRACE_LEN];
char **strings;
int size, i;
@@
-23,6
+30,7
@@
void print_trace(void)
printf("\t%s\n", strings[i]);
free(strings);
printf("\t%s\n", strings[i]);
free(strings);
+#endif /* CONFIG_STACKTRACE */
}
void model_print_summary(void)
}
void model_print_summary(void)
@@
-34,3
+42,13
@@
void assert_hook(void)
{
printf("Add breakpoint to line %u in file %s.\n",__LINE__,__FILE__);
}
{
printf("Add breakpoint to line %u in file %s.\n",__LINE__,__FILE__);
}
+
+void model_assert(bool expr, const char *file, int line)
+{
+ if (!expr) {
+ printf(" [BUG] Program has hit assertion in file %s at line %d\n",
+ file, line);
+ model->set_assert();
+ model->switch_to_master(NULL);
+ }
+}