authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-21 04:40:44-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-29 06:20:50-07:00
logaadd8d4a3efd8912c47b8ea1bbd4c3a6649c3e5d
tree9b6e2b59f28bd736c70a103fb063a55e3ddafef9
parent4ed74a9f8ab97f3358fc881d0e2f6359e22186d6

std: back out the StackTrace byval changes

Let's keep passing this thing by pointer

6 files changed, 21 insertions(+), 21 deletions(-)

lib/compiler/test_runner.zig+2-2
......@@ -148,7 +148,7 @@ fn mainServer() !void {
148148 error.SkipZigTest => .skip,
149149 else => s: {
150150 if (@errorReturnTrace()) |trace| {
151 std.debug.dumpStackTrace(trace.*);
151 std.debug.dumpStackTrace(trace);
152152 }
153153 break :s .fail;
154154 },
......@@ -269,7 +269,7 @@ fn mainTerminal() void {
269269 std.debug.print("FAIL ({t})\n", .{err});
270270 }
271271 if (@errorReturnTrace()) |trace| {
272 std.debug.dumpStackTrace(trace.*);
272 std.debug.dumpStackTrace(trace);
273273 }
274274 test_node.end();
275275 },
lib/std/Build/Step.zig+1-1
......@@ -332,7 +332,7 @@ pub fn cast(step: *Step, comptime T: type) ?*T {
332332pub fn dump(step: *Step, w: *Io.Writer, tty_config: Io.tty.Config) void {
333333 if (step.debug_stack_trace.instruction_addresses.len > 0) {
334334 w.print("name: '{s}'. creation stack trace:\n", .{step.name}) catch {};
335 std.debug.writeStackTrace(step.debug_stack_trace, w, tty_config) catch {};
335 std.debug.writeStackTrace(&step.debug_stack_trace, w, tty_config) catch {};
336336 } else {
337337 const field = "debug_stack_frames_count";
338338 comptime assert(@hasField(Build, field));
lib/std/Thread.zig+2-2
......@@ -577,7 +577,7 @@ fn callFn(comptime f: anytype, args: anytype) switch (Impl) {
577577 @call(.auto, f, args) catch |err| {
578578 std.debug.print("error: {s}\n", .{@errorName(err)});
579579 if (@errorReturnTrace()) |trace| {
580 std.debug.dumpStackTrace(trace.*);
580 std.debug.dumpStackTrace(trace);
581581 }
582582 };
583583
......@@ -1010,7 +1010,7 @@ const WasiThreadImpl = struct {
10101010 @call(.auto, f, w.args) catch |err| {
10111011 std.debug.print("error: {s}\n", .{@errorName(err)});
10121012 if (@errorReturnTrace()) |trace| {
1013 std.debug.dumpStackTrace(trace.*);
1013 std.debug.dumpStackTrace(trace);
10141014 }
10151015 };
10161016 },
lib/std/debug.zig+5-5
......@@ -553,7 +553,7 @@ pub fn defaultPanic(
553553
554554 if (@errorReturnTrace()) |t| if (t.index > 0) {
555555 stderr.writeAll("error return context:\n") catch break :trace;
556 writeStackTrace(t.*, stderr, tty_config) catch break :trace;
556 writeStackTrace(t, stderr, tty_config) catch break :trace;
557557 stderr.writeAll("\nstack trace:\n") catch break :trace;
558558 };
559559 writeCurrentStackTrace(.{
......@@ -765,12 +765,12 @@ pub const FormatStackTrace = struct {
765765
766766 pub fn format(context: @This(), writer: *Io.Writer) Io.Writer.Error!void {
767767 try writer.writeAll("\n");
768 try writeStackTrace(context.stack_trace, writer, context.tty_config);
768 try writeStackTrace(&context.stack_trace, writer, context.tty_config);
769769 }
770770};
771771
772772/// Write a previously captured stack trace to `writer`, annotated with source locations.
773pub fn writeStackTrace(st: StackTrace, writer: *Writer, tty_config: tty.Config) Writer.Error!void {
773pub fn writeStackTrace(st: *const StackTrace, writer: *Writer, tty_config: tty.Config) Writer.Error!void {
774774 if (!std.options.allow_stack_tracing) {
775775 tty_config.setColor(writer, .dim) catch {};
776776 try writer.print("Cannot print stack trace: stack tracing is disabled\n", .{});
......@@ -808,7 +808,7 @@ pub fn writeStackTrace(st: StackTrace, writer: *Writer, tty_config: tty.Config)
808808 }
809809}
810810/// A thin wrapper around `writeStackTrace` which writes to stderr and ignores write errors.
811pub fn dumpStackTrace(st: StackTrace) void {
811pub fn dumpStackTrace(st: *const StackTrace) void {
812812 const tty_config = tty.detectConfig(.stderr());
813813 const stderr = lockStderrWriter(&.{});
814814 defer unlockStderrWriter();
......@@ -1686,7 +1686,7 @@ pub fn ConfigurableTrace(comptime size: usize, comptime stack_frame_count: usize
16861686 .index = frames.len,
16871687 .instruction_addresses = frames,
16881688 };
1689 writeStackTrace(stack_trace, stderr, tty_config) catch return;
1689 writeStackTrace(&stack_trace, stderr, tty_config) catch return;
16901690 }
16911691 if (t.index > end) {
16921692 stderr.print("{d} more traces not shown; consider increasing trace size\n", .{
lib/std/start.zig+1-1
......@@ -708,7 +708,7 @@ pub inline fn callMain() u8 {
708708 switch (native_os) {
709709 .freestanding, .other => {},
710710 else => if (@errorReturnTrace()) |trace| {
711 std.debug.dumpStackTrace(trace.*);
711 std.debug.dumpStackTrace(trace);
712712 },
713713 }
714714 return 1;
test/stack_traces.zig+10-10
......@@ -116,12 +116,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
116116 .source =
117117 \\pub fn main() void {
118118 \\ var stack_trace_buf: [8]usize = undefined;
119 \\ dumpIt(captureIt(&stack_trace_buf));
119 \\ dumpIt(&captureIt(&stack_trace_buf));
120120 \\}
121121 \\fn captureIt(buf: []usize) std.builtin.StackTrace {
122122 \\ return captureItInner(buf);
123123 \\}
124 \\fn dumpIt(st: std.builtin.StackTrace) void {
124 \\fn dumpIt(st: *const std.builtin.StackTrace) void {
125125 \\ std.debug.dumpStackTrace(st);
126126 \\}
127127 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {
......@@ -140,8 +140,8 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
140140 \\ return captureItInner(buf);
141141 \\ ^
142142 \\source.zig:3:22: [address] in main
143 \\ dumpIt(captureIt(&stack_trace_buf));
144 \\ ^
143 \\ dumpIt(&captureIt(&stack_trace_buf));
144 \\ ^
145145 \\
146146 ,
147147 .expect_strip =
......@@ -157,12 +157,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
157157 .source =
158158 \\pub fn main() void {
159159 \\ var stack_trace_buf: [8]usize = undefined;
160 \\ dumpIt(captureIt(&stack_trace_buf));
160 \\ dumpIt(&captureIt(&stack_trace_buf));
161161 \\}
162162 \\fn captureIt(buf: []usize) std.builtin.StackTrace {
163163 \\ return captureItInner(buf);
164164 \\}
165 \\fn dumpIt(st: std.builtin.StackTrace) void {
165 \\fn dumpIt(st: *const std.builtin.StackTrace) void {
166166 \\ std.debug.dumpStackTrace(st);
167167 \\}
168168 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {
......@@ -186,12 +186,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
186186 \\ t.join();
187187 \\}
188188 \\fn threadMain(stack_trace_buf: []usize) void {
189 \\ dumpIt(captureIt(stack_trace_buf));
189 \\ dumpIt(&captureIt(stack_trace_buf));
190190 \\}
191191 \\fn captureIt(buf: []usize) std.builtin.StackTrace {
192192 \\ return captureItInner(buf);
193193 \\}
194 \\fn dumpIt(st: std.builtin.StackTrace) void {
194 \\fn dumpIt(st: *const std.builtin.StackTrace) void {
195195 \\ std.debug.dumpStackTrace(st);
196196 \\}
197197 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {
......@@ -210,8 +210,8 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
210210 \\ return captureItInner(buf);
211211 \\ ^
212212 \\source.zig:7:22: [address] in threadMain
213 \\ dumpIt(captureIt(stack_trace_buf));
214 \\ ^
213 \\ dumpIt(&captureIt(stack_trace_buf));
214 \\ ^
215215 \\
216216 ,
217217 .expect_strip =