summaryrefslogtreecommitdiff
path: root/core/abort.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/abort.c')
-rw-r--r--core/abort.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/core/abort.c b/core/abort.c
index 3b8e536..08f9d1c 100644
--- a/core/abort.c
+++ b/core/abort.c
@@ -1,11 +1,20 @@
#include <rune/core/abort.h>
#include <rune/core/init.h>
#include <rune/core/logging.h>
-#include <execinfo.h>
#include <stdlib.h>
#define MAX_TRACE_ITEMS 30
+#ifdef _WIN32
+
+void _stack_trace(void) {
+ log_output(LOG_ERROR, "Stack tracing is not supported on Windows");
+}
+
+#else
+
+#include <execinfo.h>
+
void _stack_trace(void) {
void* buffer[MAX_TRACE_ITEMS];
int num_links = backtrace(buffer, MAX_TRACE_ITEMS);
@@ -17,6 +26,8 @@ void _stack_trace(void) {
free(symbuf);
}
+#endif
+
void rune_abort(void) {
log_output(LOG_INFO, "Abort called, printing stack trace");
_stack_trace();