hawkinsw wrote:

> Given that the DWIM-print philosophy is to look up everything it can as a 
> simple lookup, and only falling back on the expression evaluator if it has 
> to, checking that identifiers are in the persistent expression store before 
> falling back to actually running the expression evaluator is the more 
> consistent way to do this.

Just curious, but it seems like 

```C++
if (frame && try_variable_path) {
    VariableSP var_sp;
    Status status;
    auto valobj_sp = frame->GetValueForVariableExpressionPath(
        expr, eval_options.GetUseDynamic(),
        StackFrame::eExpressionPathOptionsAllowDirectIVarAccess |
            StackFrame::eExpressionPathOptionsDisallowGlobals,
        var_sp, status, lldb::eDILModeSimple);
    if (valobj_sp && status.Success() && valobj_sp->GetError().Success()) {
```

does an evaluation, although in a limited context where the effect of the 
evaluation may be no more powerful than a lookup. Is that consistent with the 
"DWIM-print philosophy is to look up everything"? I'm just trying to make sure 
that I understand!

https://github.com/llvm/llvm-project/pull/215650
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to