Definitely a bug. ValueObjectSynthetic overrides both GetChildMemberWithName and GetIndexOfChildWithName so that if you have a synthetic value, it will look in the synthetic children to match the name, not in the underlying value's type. Not sure why this isn’t working.
Jim > On Apr 7, 2020, at 5:34 PM, Greg Clayton via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > 3 int main(int argc, const char **argv) { > 4 std::atomic<int> ai; > 5 ai = argc; > -> 6 ai = argc + 1; > 7 return 0; > 8 } > > > (lldb) fr var ai > (std::atomic<int>) ai = { > Value = 1 > } > (lldb) frame var --raw ai > (std::__1::atomic<int>) ai = { > std::__1::__atomic_base<int, true> = { > std::__1::__atomic_base<int, false> = { > __a_ = 1 > } > } > } > > So we have a synthetic child provider. But if we do: > > (lldb) script >>>> v = lldb.frame.FindVariable('ai') >>>> print(v.GetNumChildren()) > 1 >>>> print(v.GetChildAtIndex(0)) > (int) Value = 1 > > But if we ask for it by name it doesn't work: > >>>> print(v.GetChildMemberWithName('Value')) > No value > > Bug? Intentional? > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev