structstd.debug.Dwarf.expression.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 = null

If specified, any addresses will pass through before being accessed

compile_unit: ?*const std.debug.Dwarf.CompileUnit = null

The compilation unit this expression relates to, if any

object_address: ?*const anyopaque = null

When 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 = null

Thread context

reg_context: ?abi.RegisterContext = null
cfa: ?usize = null

Call frame address, if in a CFI context

entry_value_context: bool = false

This expression is a sub-expression from an OP.entry_value instruction

Source Code

Source code
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,
}