From 31538d5955970c09b261a9f76c32395c1e969a79 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Mon, 20 Nov 2023 12:39:20 +0100 Subject: [PATCH] Fix to backtrace --- lib/std/os/posix/process.c3 | 6 ++++-- src/version.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/std/os/posix/process.c3 b/lib/std/os/posix/process.c3 index 23bb591a5..a498cba75 100644 --- a/lib/std/os/posix/process.c3 +++ b/lib/std/os/posix/process.c3 @@ -55,13 +55,15 @@ const CInt __W_CONTINUED = 0xffff; const CInt WNOHANG = 1; const CInt WUNTRACES = 2; -fn CInt backtrace(void** buffer, CInt size) @weak @extern("backtrace") +fn CInt backtrace(void** buffer, CInt size) @extern("backtrace") @weak { if (size < 1) return 0; void*[128] buffer_first; CInt i; - for (i = 0; (uptr)builtin::get_frameaddress(i + 1) > 1 && i < size; i++) + for (i = 0; i < size; i++) { + uptr frame = (uptr)builtin::get_frameaddress(i + 1); + if (!frame || frame & 0x1) break; buffer[i] = builtin::get_returnaddress(i); if (!buffer[i]) break; } diff --git a/src/version.h b/src/version.h index f6421e595..e934d15ea 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define COMPILER_VERSION "0.4.708" +#define COMPILER_VERSION "0.4.709"