summaryrefslogtreecommitdiff
path: root/core/abort.c
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2024-09-30 21:45:50 -0500
committerDanny Holman <dholman@gymli.org>2024-09-30 21:45:50 -0500
commit4d46b7a69892e962ce4ddb3f7ff82e6eefb6e614 (patch)
treec5358a32bcf9930fe8f3624990ba044b9368e7b7 /core/abort.c
parentc76518f425835309b9f3a000eb4792489fbb518d (diff)
core: abort: disable stack tracing on Windows
Because the C runtime on Windows doesn't support the backtrace or backtrace_symbols functions. Signed-off-by: Danny Holman <dholman@gymli.org>
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();