From 0c24b8ec66e7f8ade2b1014fd5c06110354bcf43 Mon Sep 17 00:00:00 2001 From: mlugg Date: Thu, 18 Sep 2025 00:03:03 +0100 Subject: [PATCH] update to new std.debug changes --- lib/std/debug/Dwarf/expression.zig | 5 +---- src/crash_report.zig | 2 +- src/target.zig | 2 +- test/standalone/stack_iterator/unwind.zig | 10 +++++----- test/standalone/stack_iterator/unwind_freestanding.zig | 8 ++++---- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/lib/std/debug/Dwarf/expression.zig b/lib/std/debug/Dwarf/expression.zig index b1751af749..3291de3506 100644 --- a/lib/std/debug/Dwarf/expression.zig +++ b/lib/std/debug/Dwarf/expression.zig @@ -1566,10 +1566,7 @@ test "basics" { // Register location description var cpu_context: std.debug.cpu_context.Native = undefined; - std.debug.relocateContext(&cpu_context); - context = Context{ - .cpu_context = &cpu_context, - }; + context = .{ .cpu_context = &cpu_context }; const reg_bytes = try cpu_context.dwarfRegisterBytes(0); mem.writeInt(usize, reg_bytes[0..@sizeOf(usize)], 0xee, native_endian); diff --git a/src/crash_report.zig b/src/crash_report.zig index 8c686459fe..b051752c7a 100644 --- a/src/crash_report.zig +++ b/src/crash_report.zig @@ -17,7 +17,7 @@ pub const debug = struct { /// crash earlier than that. pub var zig_argv0: []const u8 = "zig"; -fn handleSegfaultImpl(addr: ?usize, name: []const u8, opt_ctx: ?std.debug.ThreadContextPtr) noreturn { +fn handleSegfaultImpl(addr: ?usize, name: []const u8, opt_ctx: ?std.debug.CpuContextPtr) noreturn { @branchHint(.cold); dumpCrashContext() catch {}; std.debug.defaultHandleSegfault(addr, name, opt_ctx); diff --git a/src/target.zig b/src/target.zig index 53ef68bfc5..6f139e785d 100644 --- a/src/target.zig +++ b/src/target.zig @@ -512,7 +512,7 @@ pub fn defaultUnwindTables(target: *const std.Target, libunwind: bool, libtsan: if (target.os.tag.isDarwin()) return .async; if (libunwind) return .async; if (libtsan) return .async; - if (std.debug.Dwarf.abi.supportsUnwinding(target)) return .async; + if (std.debug.Dwarf.supportsUnwinding(target)) return .async; return .none; } diff --git a/test/standalone/stack_iterator/unwind.zig b/test/standalone/stack_iterator/unwind.zig index d7df318300..1775ff1b00 100644 --- a/test/standalone/stack_iterator/unwind.zig +++ b/test/standalone/stack_iterator/unwind.zig @@ -3,7 +3,7 @@ const builtin = @import("builtin"); const fatal = std.process.fatal; noinline fn frame3(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[0] = @returnAddress(); + expected[0] = @returnAddress() - 1; return std.debug.captureCurrentStackTrace(.{ .first_address = @returnAddress(), .allow_unsafe_unwind = true, @@ -58,12 +58,12 @@ noinline fn frame2(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTr } } - expected[1] = @returnAddress(); + expected[1] = @returnAddress() - 1; return frame3(expected, addr_buf); } noinline fn frame1(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[2] = @returnAddress(); + expected[2] = @returnAddress() - 1; // Use a stack frame that is too big to encode in __unwind_info's stack-immediate encoding // to exercise the stack-indirect encoding path @@ -74,12 +74,12 @@ noinline fn frame1(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTr } noinline fn frame0(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[3] = @returnAddress(); + expected[3] = @returnAddress() - 1; return frame1(expected, addr_buf); } pub fn main() void { - if (std.posix.ucontext_t == void and builtin.omit_frame_pointer) { + if (std.debug.cpu_context.Native == noreturn and builtin.omit_frame_pointer) { // Stack unwinding is impossible. return; } diff --git a/test/standalone/stack_iterator/unwind_freestanding.zig b/test/standalone/stack_iterator/unwind_freestanding.zig index 866f73d9bd..f686bfbe12 100644 --- a/test/standalone/stack_iterator/unwind_freestanding.zig +++ b/test/standalone/stack_iterator/unwind_freestanding.zig @@ -3,7 +3,7 @@ const std = @import("std"); noinline fn frame3(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[0] = @returnAddress(); + expected[0] = @returnAddress() - 1; return std.debug.captureCurrentStackTrace(.{ .first_address = @returnAddress(), .allow_unsafe_unwind = true, @@ -11,12 +11,12 @@ noinline fn frame3(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTr } noinline fn frame2(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[1] = @returnAddress(); + expected[1] = @returnAddress() - 1; return frame3(expected, addr_buf); } noinline fn frame1(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[2] = @returnAddress(); + expected[2] = @returnAddress() - 1; // Use a stack frame that is too big to encode in __unwind_info's stack-immediate encoding // to exercise the stack-indirect encoding path @@ -27,7 +27,7 @@ noinline fn frame1(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTr } noinline fn frame0(expected: *[4]usize, addr_buf: *[4]usize) std.builtin.StackTrace { - expected[3] = @returnAddress(); + expected[3] = @returnAddress() - 1; return frame1(expected, addr_buf); }