panic
Equivalent to @panic but with a formatted message.
Function parameters
Parameters
- format:[]const u8
- args:anytype
Type definitions in this namespace
Types
- SourceLocation
- Unresolved source locations can be represented with a single `usize` that
A fully-featured panic handler namespace which lowers all panics to calls to `panicFn`.
Functions
- FullPanic
- A fully-featured panic handler namespace which lowers all panics to calls to `panicFn`.
- lockStdErr
- Allows the caller to freely write to stderr until `unlockStdErr` is called.
- lockStderrWriter
- Allows the caller to freely write to stderr until `unlockStdErr` is called.
- Print to stderr, silently returning on failure.
- dumpHex
- Tries to print a hexadecimal view of the bytes, unbuffered, and ignores any error returned.
- dumpHexFallible
- Prints a hexadecimal view of the bytes, returning any error that occurs.
- dumpCurrentStackTrace
- Tries to print the current stack trace to stderr, unbuffered, and ignores any error returned.
- dumpCurrentStackTraceToWriter
- Prints the current stack trace to the provided writer.
- copyContext
- Copies one context to another, updating any internal pointers
- relocateContext
- Updates any internal pointers in the context to reflect its current location
- getContext
- Capture the current context.
- dumpStackTraceFromBase
- Tries to print the stack trace starting from the supplied base pointer to stderr,
- captureStackTrace
- Returns a slice with the same pointer as addresses, with a potentially smaller len.
- dumpStackTrace
- Tries to print a stack trace to stderr, unbuffered, and ignores any error returned.
- assert
- Invokes detectable illegal behavior when `ok` is `false`.
- assertReadable
- Invokes detectable illegal behavior when the provided slice is not mapped
- assertAligned
- Invokes detectable illegal behavior when the provided array is not aligned
- panic
- Equivalent to `@panic` but with a formatted message.
- panicExtra
- Equivalent to `@panic` but with a formatted message, and with an explicitly
- defaultPanic
- Dumps a stack trace to standard error, then aborts.
- attachSegfaultHandler
- Attaches a global SIGSEGV handler which calls `@panic("segmentation fault");`
- inValgrind
- Detect whether the program is being executed in the Valgrind virtual machine.
Deprecated because it returns the optimization mode of the standard
Values
- runtime_safety
- Deprecated because it returns the optimization mode of the standard
- sys_can_stack_trace
- = switch (builtin.cpu.arch) { // Observed to go into an infinite loop. // TODO: Make this work. .mips, .mipsel, .mips64, .mips64el, .s390x, => false, // `@returnAddress()` in LLVM 10 gives // "Non-Emscripten WebAssembly hasn't implemented __builtin_return_address". // On Emscripten, Zig only supports `@returnAddress()` in debug builds // because Emscripten's implementation is very slow. .wasm32, .wasm64, => native_os == .emscripten and builtin.mode == .Debug, // `@returnAddress()` is unsupported in LLVM 13. .bpfel, .bpfeb, => false, else => true, }
- have_ucontext
- = posix.ucontext_t != void
- ThreadContext
- Platform-specific thread state.
- have_getcontext
- = @TypeOf(posix.system.getcontext) != void
- have_segfault_handling_support
- Whether or not the current target can print useful debug information when a segfault occurs.
- default_enable_segfault_handler
- = runtime_safety and have_segfault_handling_support
Source
Implementation
pub fn panic(comptime format: []const u8, args: anytype) noreturn {
@branchHint(.cold);
panicExtra(@returnAddress(), format, args);
}