From e2f77230a6df99c2bee039f31c33803e865add2a Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Tue, 22 Dec 2020 20:58:13 -0600 Subject: [PATCH] stack trace example --- stack_traces.zig | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 stack_traces.zig diff --git a/stack_traces.zig b/stack_traces.zig new file mode 100644 index 0000000..58d133a --- /dev/null +++ b/stack_traces.zig @@ -0,0 +1,32 @@ +const std = @import("std"); +const builtin = @import("builtin"); + +var address_buffer: [8]usize = undefined; + +var trace1 = builtin.StackTrace{ + .instruction_addresses = address_buffer[0..4], + .index = 0, +}; + +var trace2 = builtin.StackTrace{ + .instruction_addresses = address_buffer[4..], + .index = 0, +}; + +pub fn main() void { + foo(); + bar(); + + std.debug.print("first one:\n", .{}); + std.debug.dumpStackTrace(trace1); + std.debug.print("\n\nsecond one:\n", .{}); + std.debug.dumpStackTrace(trace2); +} + +fn foo() void { + std.debug.captureStackTrace(null, &trace1); +} + +fn bar() void { + std.debug.captureStackTrace(null, &trace2); +}