diff options
author | Danny Holman <dholman@gymli.org> | 2024-09-30 21:45:50 -0500 |
---|---|---|
committer | Danny Holman <dholman@gymli.org> | 2024-09-30 21:45:50 -0500 |
commit | 4d46b7a69892e962ce4ddb3f7ff82e6eefb6e614 (patch) | |
tree | c5358a32bcf9930fe8f3624990ba044b9368e7b7 /core | |
parent | c76518f425835309b9f3a000eb4792489fbb518d (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')
-rw-r--r-- | core/abort.c | 13 |
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(); |