aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug/cpu_context.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2025-09-17 23:03:45 +0100
committermlugg <mlugg@mlugg.co.uk>2025-09-30 13:44:54 +0100
commitdd8d59686a069fdb72d9f0753e3482ff99cce98c (patch)
tree0a90991d41626bb9400a1d6cf956d10b99ed3a6c /lib/std/debug/cpu_context.zig
parenta18fd41064493e742eacebc88e2afeadd54ff6f0 (diff)
downloadzig-dd8d59686a069fdb72d9f0753e3482ff99cce98c.tar.gz
zig-dd8d59686a069fdb72d9f0753e3482ff99cce98c.zip
std.debug: miscellaneous fixes
Mostly on macOS, since Loris showed me a not-great stack trace, and I spent 8 hours trying to make it better. The dyld shared cache is designed in a way which makes this really hard to do right, and documentation is non-existent, but this *seems* to work pretty well. I'll leave the ruling on whether I did a good job to CI and our users.
Diffstat (limited to 'lib/std/debug/cpu_context.zig')
-rw-r--r--lib/std/debug/cpu_context.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/std/debug/cpu_context.zig b/lib/std/debug/cpu_context.zig
index 9859575fa3..b9dd49767f 100644
--- a/lib/std/debug/cpu_context.zig
+++ b/lib/std/debug/cpu_context.zig
@@ -214,6 +214,12 @@ pub fn fromWindowsContext(ctx: *const std.os.windows.CONTEXT) Native {
.sp = ctx.Sp,
.pc = ctx.Pc,
},
+ .thumb => .{ .r = .{
+ ctx.R0, ctx.R1, ctx.R2, ctx.R3,
+ ctx.R4, ctx.R5, ctx.R6, ctx.R7,
+ ctx.R8, ctx.R9, ctx.R10, ctx.R11,
+ ctx.R12, ctx.Sp, ctx.Lr, ctx.Pc,
+ } },
else => comptime unreachable,
};
}