class AsyncDwarfExprEval

Defined at line 60 of file ../../src/developer/debug/zxdb/expr/eval_dwarf_expr.h

Manages evaluation of a DWARF expression (which might be asynchronous and need some tricky memory

management). This keeps itself and the expression evaluator alive during the computation.

See the file comment above, most callers will want one of the other variants.

Example:

auto eval = fxl::MakeRefCounted

<AsyncDwarfExprEval

>([](DwarfExprEval

&

eval) {

eval->...();

});

eval->Eval(data_provider, expression);

Public Methods

DwarfExprEval & dwarf_eval ()

Allows the expression evaluator to be set up before Eval() is called for cases where it needs

initial state.

Defined at line 66 of file ../../src/developer/debug/zxdb/expr/eval_dwarf_expr.h

void Eval (DwarfExpr expr)

Starts evaluation. It will take a reference to itself during execution and the callback passed

into the constructor will be issued on completion. This can only be called once.

The symbol context should be the one for the module the expression came from so that addresses

within the expression can be interpreted correctly.

Defined at line 78 of file ../../src/developer/debug/zxdb/expr/eval_dwarf_expr.cc

Protected Methods

void AsyncDwarfExprEval (UnitSymbolFactory symbol_factory, fxl::RefPtr<SymbolDataProvider> data_provider, const SymbolContext & expr_symbol_context, DwarfEvalCallback cb)

Defined at line 79 of file ../../src/developer/debug/zxdb/expr/eval_dwarf_expr.h

void ~AsyncDwarfExprEval ()

Defined at line 84 of file ../../src/developer/debug/zxdb/expr/eval_dwarf_expr.h

Friends

class MakeRefCountedHelper
class RefCountedThreadSafe