[Lldb-commits] [lldb] [lldb] Add lookup by name to SBValue.child (PR #118814)
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Fri Dec 6 01:06:08 PST 2024
================
@@ -23,6 +23,13 @@ STRING_EXTENSION_OUTSIDE(SBValue)
if -count <= key < count:
key %= count
return self.sbvalue.GetChildAtIndex(key)
+ elif isinstance(key, str):
+ if child := self.sbvalue.GetChildMemberWithName(key):
+ return child
+ # Support base classes, which are children but not members.
+ for child in self.sbvalue:
+ if child.name == key:
+ return child
----------------
labath wrote:
I don't think this is a good idea, as it means every negative lookup could end up enumerating all children of the object -- and there could be millions of them. If you really want to support looking up base classes (*), I think it should be done by iterating through the base base classes.
* I actually think we shouldn't be providing extra functionality here -- at least unless GetChildMemberWithName supports that as well. I think the fact that `operator[](string)` is shorthand for `GetChildMemberWithName(string)` makes things easy to understand. I think it'd be confusing if one of them provided functionality which is not available in the other one. You'd also have to be very careful about handling data formatters -- they can provide synthetic children, but not "synthetic base classes".
https://github.com/llvm/llvm-project/pull/118814
More information about the lldb-commits
mailing list