aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-12-08 16:13:51 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-12-23 22:15:08 -0800
commit9ccd68de0b79c3723bd11071fd836bc24ff25b33 (patch)
tree3441f2a7030f40a6b625f4ff9fc7d719a60a32d3 /lib/std/debug.zig
parent7f5bb118d4d90e2b883ee66e17592ac8d7808ac8 (diff)
downloadzig-9ccd68de0b79c3723bd11071fd836bc24ff25b33.tar.gz
zig-9ccd68de0b79c3723bd11071fd836bc24ff25b33.zip
std: move abort and exit from posix into process
and delete the unit tests that called fork() no forking allowed in the std lib, including unit tests, except to implement child process spawning.
Diffstat (limited to 'lib/std/debug.zig')
-rw-r--r--lib/std/debug.zig12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/std/debug.zig b/lib/std/debug.zig
index 5df0eef2d5..7ede172d86 100644
--- a/lib/std/debug.zig
+++ b/lib/std/debug.zig
@@ -522,7 +522,7 @@ pub fn defaultPanic(
}
@trap();
},
- .cuda, .amdhsa => std.posix.abort(),
+ .cuda, .amdhsa => std.process.abort(),
.plan9 => {
var status: [std.os.plan9.ERRMAX]u8 = undefined;
const len = @min(msg.len, status.len - 1);
@@ -575,12 +575,13 @@ pub fn defaultPanic(
// A panic happened while trying to print a previous panic message.
// We're still holding the mutex but that's fine as we're going to
// call abort().
- File.stderr().writeStreamingAll("aborting due to recursive panic\n") catch {};
+ const stderr, _ = lockStderrWriter(&.{});
+ stderr.writeAll("aborting due to recursive panic\n") catch {};
},
else => {}, // Panicked while printing the recursive panic message.
}
- posix.abort();
+ std.process.abort();
}
/// Must be called only after adding 1 to `panicking`. There are three callsites.
@@ -1596,7 +1597,8 @@ pub fn defaultHandleSegfault(addr: ?usize, name: []const u8, opt_ctx: ?CpuContex
// A segfault happened while trying to print a previous panic message.
// We're still holding the mutex but that's fine as we're going to
// call abort().
- File.stderr().writeAll("aborting due to recursive panic\n") catch {};
+ const stderr, _ = lockStderrWriter(&.{});
+ stderr().writeAll("aborting due to recursive panic\n") catch {};
},
else => {}, // Panicked while printing the recursive panic message.
}
@@ -1604,7 +1606,7 @@ pub fn defaultHandleSegfault(addr: ?usize, name: []const u8, opt_ctx: ?CpuContex
// We cannot allow the signal handler to return because when it runs the original instruction
// again, the memory may be mapped and undefined behavior would occur rather than repeating
// the segfault. So we simply abort here.
- posix.abort();
+ std.process.abort();
}
pub fn dumpStackPointerAddr(prefix: []const u8) void {