mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
std: back out the StackTrace byval changes
Let's keep passing this thing by pointer
This commit is contained in:
parent
4ed74a9f8a
commit
aadd8d4a3e
6 changed files with 21 additions and 21 deletions
|
|
@ -148,7 +148,7 @@ fn mainServer() !void {
|
||||||
error.SkipZigTest => .skip,
|
error.SkipZigTest => .skip,
|
||||||
else => s: {
|
else => s: {
|
||||||
if (@errorReturnTrace()) |trace| {
|
if (@errorReturnTrace()) |trace| {
|
||||||
std.debug.dumpStackTrace(trace.*);
|
std.debug.dumpStackTrace(trace);
|
||||||
}
|
}
|
||||||
break :s .fail;
|
break :s .fail;
|
||||||
},
|
},
|
||||||
|
|
@ -269,7 +269,7 @@ fn mainTerminal() void {
|
||||||
std.debug.print("FAIL ({t})\n", .{err});
|
std.debug.print("FAIL ({t})\n", .{err});
|
||||||
}
|
}
|
||||||
if (@errorReturnTrace()) |trace| {
|
if (@errorReturnTrace()) |trace| {
|
||||||
std.debug.dumpStackTrace(trace.*);
|
std.debug.dumpStackTrace(trace);
|
||||||
}
|
}
|
||||||
test_node.end();
|
test_node.end();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -332,7 +332,7 @@ pub fn cast(step: *Step, comptime T: type) ?*T {
|
||||||
pub fn dump(step: *Step, w: *Io.Writer, tty_config: Io.tty.Config) void {
|
pub fn dump(step: *Step, w: *Io.Writer, tty_config: Io.tty.Config) void {
|
||||||
if (step.debug_stack_trace.instruction_addresses.len > 0) {
|
if (step.debug_stack_trace.instruction_addresses.len > 0) {
|
||||||
w.print("name: '{s}'. creation stack trace:\n", .{step.name}) catch {};
|
w.print("name: '{s}'. creation stack trace:\n", .{step.name}) catch {};
|
||||||
std.debug.writeStackTrace(step.debug_stack_trace, w, tty_config) catch {};
|
std.debug.writeStackTrace(&step.debug_stack_trace, w, tty_config) catch {};
|
||||||
} else {
|
} else {
|
||||||
const field = "debug_stack_frames_count";
|
const field = "debug_stack_frames_count";
|
||||||
comptime assert(@hasField(Build, field));
|
comptime assert(@hasField(Build, field));
|
||||||
|
|
|
||||||
|
|
@ -577,7 +577,7 @@ fn callFn(comptime f: anytype, args: anytype) switch (Impl) {
|
||||||
@call(.auto, f, args) catch |err| {
|
@call(.auto, f, args) catch |err| {
|
||||||
std.debug.print("error: {s}\n", .{@errorName(err)});
|
std.debug.print("error: {s}\n", .{@errorName(err)});
|
||||||
if (@errorReturnTrace()) |trace| {
|
if (@errorReturnTrace()) |trace| {
|
||||||
std.debug.dumpStackTrace(trace.*);
|
std.debug.dumpStackTrace(trace);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1010,7 +1010,7 @@ const WasiThreadImpl = struct {
|
||||||
@call(.auto, f, w.args) catch |err| {
|
@call(.auto, f, w.args) catch |err| {
|
||||||
std.debug.print("error: {s}\n", .{@errorName(err)});
|
std.debug.print("error: {s}\n", .{@errorName(err)});
|
||||||
if (@errorReturnTrace()) |trace| {
|
if (@errorReturnTrace()) |trace| {
|
||||||
std.debug.dumpStackTrace(trace.*);
|
std.debug.dumpStackTrace(trace);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -553,7 +553,7 @@ pub fn defaultPanic(
|
||||||
|
|
||||||
if (@errorReturnTrace()) |t| if (t.index > 0) {
|
if (@errorReturnTrace()) |t| if (t.index > 0) {
|
||||||
stderr.writeAll("error return context:\n") catch break :trace;
|
stderr.writeAll("error return context:\n") catch break :trace;
|
||||||
writeStackTrace(t.*, stderr, tty_config) catch break :trace;
|
writeStackTrace(t, stderr, tty_config) catch break :trace;
|
||||||
stderr.writeAll("\nstack trace:\n") catch break :trace;
|
stderr.writeAll("\nstack trace:\n") catch break :trace;
|
||||||
};
|
};
|
||||||
writeCurrentStackTrace(.{
|
writeCurrentStackTrace(.{
|
||||||
|
|
@ -765,12 +765,12 @@ pub const FormatStackTrace = struct {
|
||||||
|
|
||||||
pub fn format(context: @This(), writer: *Io.Writer) Io.Writer.Error!void {
|
pub fn format(context: @This(), writer: *Io.Writer) Io.Writer.Error!void {
|
||||||
try writer.writeAll("\n");
|
try writer.writeAll("\n");
|
||||||
try writeStackTrace(context.stack_trace, writer, context.tty_config);
|
try writeStackTrace(&context.stack_trace, writer, context.tty_config);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Write a previously captured stack trace to `writer`, annotated with source locations.
|
/// Write a previously captured stack trace to `writer`, annotated with source locations.
|
||||||
pub fn writeStackTrace(st: StackTrace, writer: *Writer, tty_config: tty.Config) Writer.Error!void {
|
pub fn writeStackTrace(st: *const StackTrace, writer: *Writer, tty_config: tty.Config) Writer.Error!void {
|
||||||
if (!std.options.allow_stack_tracing) {
|
if (!std.options.allow_stack_tracing) {
|
||||||
tty_config.setColor(writer, .dim) catch {};
|
tty_config.setColor(writer, .dim) catch {};
|
||||||
try writer.print("Cannot print stack trace: stack tracing is disabled\n", .{});
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// A thin wrapper around `writeStackTrace` which writes to stderr and ignores write errors.
|
/// A thin wrapper around `writeStackTrace` which writes to stderr and ignores write errors.
|
||||||
pub fn dumpStackTrace(st: StackTrace) void {
|
pub fn dumpStackTrace(st: *const StackTrace) void {
|
||||||
const tty_config = tty.detectConfig(.stderr());
|
const tty_config = tty.detectConfig(.stderr());
|
||||||
const stderr = lockStderrWriter(&.{});
|
const stderr = lockStderrWriter(&.{});
|
||||||
defer unlockStderrWriter();
|
defer unlockStderrWriter();
|
||||||
|
|
@ -1686,7 +1686,7 @@ pub fn ConfigurableTrace(comptime size: usize, comptime stack_frame_count: usize
|
||||||
.index = frames.len,
|
.index = frames.len,
|
||||||
.instruction_addresses = frames,
|
.instruction_addresses = frames,
|
||||||
};
|
};
|
||||||
writeStackTrace(stack_trace, stderr, tty_config) catch return;
|
writeStackTrace(&stack_trace, stderr, tty_config) catch return;
|
||||||
}
|
}
|
||||||
if (t.index > end) {
|
if (t.index > end) {
|
||||||
stderr.print("{d} more traces not shown; consider increasing trace size\n", .{
|
stderr.print("{d} more traces not shown; consider increasing trace size\n", .{
|
||||||
|
|
|
||||||
|
|
@ -708,7 +708,7 @@ pub inline fn callMain() u8 {
|
||||||
switch (native_os) {
|
switch (native_os) {
|
||||||
.freestanding, .other => {},
|
.freestanding, .other => {},
|
||||||
else => if (@errorReturnTrace()) |trace| {
|
else => if (@errorReturnTrace()) |trace| {
|
||||||
std.debug.dumpStackTrace(trace.*);
|
std.debug.dumpStackTrace(trace);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
|
|
@ -116,12 +116,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
|
||||||
.source =
|
.source =
|
||||||
\\pub fn main() void {
|
\\pub fn main() void {
|
||||||
\\ var stack_trace_buf: [8]usize = undefined;
|
\\ var stack_trace_buf: [8]usize = undefined;
|
||||||
\\ dumpIt(captureIt(&stack_trace_buf));
|
\\ dumpIt(&captureIt(&stack_trace_buf));
|
||||||
\\}
|
\\}
|
||||||
\\fn captureIt(buf: []usize) std.builtin.StackTrace {
|
\\fn captureIt(buf: []usize) std.builtin.StackTrace {
|
||||||
\\ return captureItInner(buf);
|
\\ return captureItInner(buf);
|
||||||
\\}
|
\\}
|
||||||
\\fn dumpIt(st: std.builtin.StackTrace) void {
|
\\fn dumpIt(st: *const std.builtin.StackTrace) void {
|
||||||
\\ std.debug.dumpStackTrace(st);
|
\\ std.debug.dumpStackTrace(st);
|
||||||
\\}
|
\\}
|
||||||
\\fn captureItInner(buf: []usize) std.builtin.StackTrace {
|
\\fn captureItInner(buf: []usize) std.builtin.StackTrace {
|
||||||
|
|
@ -140,7 +140,7 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
|
||||||
\\ return captureItInner(buf);
|
\\ return captureItInner(buf);
|
||||||
\\ ^
|
\\ ^
|
||||||
\\source.zig:3:22: [address] in main
|
\\source.zig:3:22: [address] in main
|
||||||
\\ dumpIt(captureIt(&stack_trace_buf));
|
\\ dumpIt(&captureIt(&stack_trace_buf));
|
||||||
\\ ^
|
\\ ^
|
||||||
\\
|
\\
|
||||||
,
|
,
|
||||||
|
|
@ -157,12 +157,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
|
||||||
.source =
|
.source =
|
||||||
\\pub fn main() void {
|
\\pub fn main() void {
|
||||||
\\ var stack_trace_buf: [8]usize = undefined;
|
\\ var stack_trace_buf: [8]usize = undefined;
|
||||||
\\ dumpIt(captureIt(&stack_trace_buf));
|
\\ dumpIt(&captureIt(&stack_trace_buf));
|
||||||
\\}
|
\\}
|
||||||
\\fn captureIt(buf: []usize) std.builtin.StackTrace {
|
\\fn captureIt(buf: []usize) std.builtin.StackTrace {
|
||||||
\\ return captureItInner(buf);
|
\\ return captureItInner(buf);
|
||||||
\\}
|
\\}
|
||||||
\\fn dumpIt(st: std.builtin.StackTrace) void {
|
\\fn dumpIt(st: *const std.builtin.StackTrace) void {
|
||||||
\\ std.debug.dumpStackTrace(st);
|
\\ std.debug.dumpStackTrace(st);
|
||||||
\\}
|
\\}
|
||||||
\\fn captureItInner(buf: []usize) std.builtin.StackTrace {
|
\\fn captureItInner(buf: []usize) std.builtin.StackTrace {
|
||||||
|
|
@ -186,12 +186,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
|
||||||
\\ t.join();
|
\\ t.join();
|
||||||
\\}
|
\\}
|
||||||
\\fn threadMain(stack_trace_buf: []usize) void {
|
\\fn threadMain(stack_trace_buf: []usize) void {
|
||||||
\\ dumpIt(captureIt(stack_trace_buf));
|
\\ dumpIt(&captureIt(stack_trace_buf));
|
||||||
\\}
|
\\}
|
||||||
\\fn captureIt(buf: []usize) std.builtin.StackTrace {
|
\\fn captureIt(buf: []usize) std.builtin.StackTrace {
|
||||||
\\ return captureItInner(buf);
|
\\ return captureItInner(buf);
|
||||||
\\}
|
\\}
|
||||||
\\fn dumpIt(st: std.builtin.StackTrace) void {
|
\\fn dumpIt(st: *const std.builtin.StackTrace) void {
|
||||||
\\ std.debug.dumpStackTrace(st);
|
\\ std.debug.dumpStackTrace(st);
|
||||||
\\}
|
\\}
|
||||||
\\fn captureItInner(buf: []usize) std.builtin.StackTrace {
|
\\fn captureItInner(buf: []usize) std.builtin.StackTrace {
|
||||||
|
|
@ -210,7 +210,7 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
|
||||||
\\ return captureItInner(buf);
|
\\ return captureItInner(buf);
|
||||||
\\ ^
|
\\ ^
|
||||||
\\source.zig:7:22: [address] in threadMain
|
\\source.zig:7:22: [address] in threadMain
|
||||||
\\ dumpIt(captureIt(stack_trace_buf));
|
\\ dumpIt(&captureIt(stack_trace_buf));
|
||||||
\\ ^
|
\\ ^
|
||||||
\\
|
\\
|
||||||
,
|
,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue