[Lldb-commits] [lldb] [lldb] Add lookup by name to SBValue.child (PR #118814)

Dave Lee via lldb-commits lldb-commits at lists.llvm.org
Fri Dec 6 10:31:21 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
----------------
kastiglione wrote:

> I think it should be done by iterating through the base base classes.

Is there even an API for this? Maybe it'd have to be derived, something like:

```python
def base_classes(self):
    for child in self:
        if self.GetChildMemberWithName(child.name):
            # child is a member, stop iteration.
            return
        yield child
```

https://github.com/llvm/llvm-project/pull/118814


More information about the lldb-commits mailing list