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

is_64: bool = false,

This expression is from a DWARF64 section

isValidMemory: ?*const fn (usize) bool = null,

If specified, any addresses will pass through this function before being acccessed

compile_unit: ?*const 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