aboutsummaryrefslogtreecommitdiff
path: root/std/debug.zig
diff options
context:
space:
mode:
Diffstat (limited to 'std/debug.zig')
-rw-r--r--std/debug.zig16
1 files changed, 16 insertions, 0 deletions
diff --git a/std/debug.zig b/std/debug.zig
new file mode 100644
index 0000000000..1a289b645e
--- /dev/null
+++ b/std/debug.zig
@@ -0,0 +1,16 @@
+const io = @import("io.zig");
+
+pub fn assert(b: bool) {
+ if (!b) unreachable{}
+}
+
+pub fn print_stack_trace() {
+ var maybe_fp: ?&const u8 = @frame_address();
+ while (true) {
+ const fp = maybe_fp ?? break;
+ const return_address = *(&const usize)(usize(fp) + @sizeof(usize));
+ %%io.stderr.print_u64(return_address);
+ %%io.stderr.printf("\n");
+ maybe_fp = *(&const ?&const u8)(fp);
+ }
+}