Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › debug.zig › handleSegfaultWindows
handleSegfaultWindows
debug.handleSegfaultWindows
fn handleSegfaultWindows (info : *windows .EXCEPTION_POINTERS ) callconv (.winapi ) c_long
File
Code
fn handleSegfaultWindows (info : *windows .EXCEPTION_POINTERS ) callconv (.winapi ) c_long {
if (use_trap_panic ) @trap ();
const name : []const u8 , const addr : ?usize = switch (info .ExceptionRecord .ExceptionCode ) {
windows .EXCEPTION_DATATYPE_MISALIGNMENT => .{ "Unaligned memory access" , null },
windows .EXCEPTION_ACCESS_VIOLATION => .{ "Segmentation fault" , info .ExceptionRecord .ExceptionInformation [1 ] },
windows .EXCEPTION_ILLEGAL_INSTRUCTION => .{ "Illegal instruction" , info .ContextRecord .getRegs ().ip },
windows .EXCEPTION_STACK_OVERFLOW => .{ "Stack overflow" , null },
else => return windows .EXCEPTION_CONTINUE_SEARCH ,
};
handleSegfault (addr , name , &cpu_context .fromWindowsContext (info .ContextRecord ));
}