struct Context [src]
Expressions can be evaluated in different contexts, each requiring its own set of inputs.
Callers should specify all the fields relevant to their context. If a field is required
by the expression and it isn't in the context, error.IncompleteExpressionContext is returned.
Fields
format: std.dwarf.Format = .@"32"The dwarf format of the section this expression is in
memory_accessor: ?*std.debug.MemoryAccessor = nullIf specified, any addresses will pass through before being accessed
compile_unit: ?*const std.debug.Dwarf.CompileUnit = nullThe compilation unit this expression relates to, if any
object_address: ?*const anyopaque = nullWhen evaluating a user-presented expression, this is the address of the object being evaluated
debug_addr: ?[]const u8 = null.debug_addr section
thread_context: ?*std.debug.ThreadContext = nullThread context
reg_context: ?abi.RegisterContext = null
cfa: ?usize = nullCall frame address, if in a CFI context
entry_value_context: bool = falseThis expression is a sub-expression from an OP.entry_value instruction
Source
pub const Context = struct {
/// The dwarf format of the section this expression is in
format: std.dwarf.Format = .@"32",
/// If specified, any addresses will pass through before being accessed
memory_accessor: ?*std.debug.MemoryAccessor = null,
/// The compilation unit this expression relates to, if any
compile_unit: ?*const std.debug.Dwarf.CompileUnit = null,
/// When evaluating a user-presented expression, this is the address of the object being evaluated
object_address: ?*const anyopaque = null,
/// .debug_addr section
debug_addr: ?[]const u8 = null,
/// Thread context
thread_context: ?*std.debug.ThreadContext = null,
reg_context: ?abi.RegisterContext = null,
/// Call frame address, if in a CFI context
cfa: ?usize = null,
/// This expression is a sub-expression from an OP.entry_value instruction
entry_value_context: bool = false,
}