mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
Merge pull request #21173 from mrjbq7/writeStackTrace
std.debug: remove allocator from std.debug.writeStackTrace()
This commit is contained in:
commit
96daca7b3b
@ -295,10 +295,9 @@ pub fn dump(step: *Step, file: std.fs.File) void {
|
|||||||
}) catch {};
|
}) catch {};
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
const ally = debug_info.allocator;
|
|
||||||
if (step.getStackTrace()) |stack_trace| {
|
if (step.getStackTrace()) |stack_trace| {
|
||||||
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(stack_trace, w, ally, debug_info, tty_config) catch |err| {
|
std.debug.writeStackTrace(stack_trace, w, debug_info, tty_config) catch |err| {
|
||||||
w.print("Unable to dump stack trace: {s}\n", .{@errorName(err)}) catch {};
|
w.print("Unable to dump stack trace: {s}\n", .{@errorName(err)}) catch {};
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -48,14 +48,12 @@ pub const StackTrace = struct {
|
|||||||
if (builtin.os.tag == .freestanding) return;
|
if (builtin.os.tag == .freestanding) return;
|
||||||
|
|
||||||
_ = options;
|
_ = options;
|
||||||
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
|
|
||||||
defer arena.deinit();
|
|
||||||
const debug_info = std.debug.getSelfDebugInfo() catch |err| {
|
const debug_info = std.debug.getSelfDebugInfo() catch |err| {
|
||||||
return writer.print("\nUnable to print stack trace: Unable to open debug info: {s}\n", .{@errorName(err)});
|
return writer.print("\nUnable to print stack trace: Unable to open debug info: {s}\n", .{@errorName(err)});
|
||||||
};
|
};
|
||||||
const tty_config = std.io.tty.detectConfig(std.io.getStdErr());
|
const tty_config = std.io.tty.detectConfig(std.io.getStdErr());
|
||||||
try writer.writeAll("\n");
|
try writer.writeAll("\n");
|
||||||
std.debug.writeStackTrace(self, writer, arena.allocator(), debug_info, tty_config) catch |err| {
|
std.debug.writeStackTrace(self, writer, debug_info, tty_config) catch |err| {
|
||||||
try writer.print("Unable to print stack trace: {s}\n", .{@errorName(err)});
|
try writer.print("Unable to print stack trace: {s}\n", .{@errorName(err)});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -377,7 +377,7 @@ pub fn dumpStackTrace(stack_trace: std.builtin.StackTrace) void {
|
|||||||
stderr.print("Unable to dump stack trace: Unable to open debug info: {s}\n", .{@errorName(err)}) catch return;
|
stderr.print("Unable to dump stack trace: Unable to open debug info: {s}\n", .{@errorName(err)}) catch return;
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
writeStackTrace(stack_trace, stderr, getDebugInfoAllocator(), debug_info, io.tty.detectConfig(io.getStdErr())) catch |err| {
|
writeStackTrace(stack_trace, stderr, debug_info, io.tty.detectConfig(io.getStdErr())) catch |err| {
|
||||||
stderr.print("Unable to dump stack trace: {s}\n", .{@errorName(err)}) catch return;
|
stderr.print("Unable to dump stack trace: {s}\n", .{@errorName(err)}) catch return;
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
@ -520,11 +520,9 @@ fn waitForOtherThreadToFinishPanicking() void {
|
|||||||
pub fn writeStackTrace(
|
pub fn writeStackTrace(
|
||||||
stack_trace: std.builtin.StackTrace,
|
stack_trace: std.builtin.StackTrace,
|
||||||
out_stream: anytype,
|
out_stream: anytype,
|
||||||
allocator: mem.Allocator,
|
|
||||||
debug_info: *SelfInfo,
|
debug_info: *SelfInfo,
|
||||||
tty_config: io.tty.Config,
|
tty_config: io.tty.Config,
|
||||||
) !void {
|
) !void {
|
||||||
_ = allocator;
|
|
||||||
if (builtin.strip_debug_info) return error.MissingDebugInfo;
|
if (builtin.strip_debug_info) return error.MissingDebugInfo;
|
||||||
var frame_index: usize = 0;
|
var frame_index: usize = 0;
|
||||||
var frames_left: usize = @min(stack_trace.index, stack_trace.instruction_addresses.len);
|
var frames_left: usize = @min(stack_trace.index, stack_trace.instruction_addresses.len);
|
||||||
@ -1452,7 +1450,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, getDebugInfoAllocator(), debug_info, tty_config) catch continue;
|
writeStackTrace(stack_trace, stderr, debug_info, tty_config) catch continue;
|
||||||
}
|
}
|
||||||
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", .{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user