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