init
Function parameters
Parameters
How is this different than `Module` when the host is Windows?
Types
- WindowsModule
- How is this different than `Module` when the host is Windows?
- VirtualMachine
- This is a virtual machine that runs DWARF call frame instructions.
Functions in this namespace
Functions
- readElfDebugInfo
- Reads debug info from an ELF file, or the current binary if none in specified.
- unwindFrameMachO
- Unwind a frame using MachO compact unwind info (from __unwind_info).
- stripInstructionPtrAuthCode
- Some platforms use pointer authentication - the upper bits of instruction pointers contain a signature.
- unwindFrameDwarf
- Unwind a stack frame using DWARF unwinding info, updating the register context.
- supportsUnwinding
- Tells whether unwinding for this target is *implemented* here in the Zig
Error sets in this namespace
Error Sets
Tells whether unwinding for the host is implemented.
Values
- supports_unwinding
- Tells whether unwinding for the host is implemented.
Source
Implementation
pub fn init(
allocator: Allocator,
thread_context: *std.debug.ThreadContext,
) !UnwindContext {
comptime assert(supports_unwinding);
const pc = stripInstructionPtrAuthCode(
(try regValueNative(thread_context, ip_reg_num, null)).*,
);
const context_copy = try allocator.create(std.debug.ThreadContext);
std.debug.copyContext(thread_context, context_copy);
return .{
.allocator = allocator,
.cfa = null,
.pc = pc,
.thread_context = context_copy,
.reg_context = undefined,
.vm = .{},
.stack_machine = .{},
};
}