[Lldb-commits] [lldb] 62deee4 - [LLDB] Add a child property to compliment the existing parent property (#168619)

via lldb-commits lldb-commits at lists.llvm.org
Thu Nov 20 10:05:24 PST 2025


Author: Jacob Lalonde
Date: 2025-11-20T18:05:19Z
New Revision: 62deee41592d7522d7fc3c3686d657bc36d80638

URL: https://github.com/llvm/llvm-project/commit/62deee41592d7522d7fc3c3686d657bc36d80638
DIFF: https://github.com/llvm/llvm-project/commit/62deee41592d7522d7fc3c3686d657bc36d80638.diff

LOG: [LLDB] Add a child property to compliment the existing parent property (#168619)

I've been working on some scripts that evaluate the parent and child
frame. It's been very annoying that the parent frame has a property but
not the child. So I've added this to the extensions, I would've
preferred to return None, but because the existing impl returns an
invalid SBFrame, so I'm conforming to that API.

```
(lldb) script
Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
>>> lldb.frame
frame #0: 0x0000555555555200 fib.out`main
>>> lldb.frame.parent
frame #1: 0x00007ffff782a610 libc.so.6`__libc_start_call_main + 128
>>> lldb.frame.parent.child
frame #0: 0x0000555555555200 fib.out`main
```

Added: 
    

Modified: 
    lldb/bindings/interface/SBFrameExtensions.i

Removed: 
    


################################################################################
diff  --git a/lldb/bindings/interface/SBFrameExtensions.i b/lldb/bindings/interface/SBFrameExtensions.i
index 38d03abaee8f0..0c79b98b290f2 100644
--- a/lldb/bindings/interface/SBFrameExtensions.i
+++ b/lldb/bindings/interface/SBFrameExtensions.i
@@ -24,6 +24,13 @@ STRING_EXTENSION_OUTSIDE(SBFrame)
             else:
                 return SBFrame()
 
+        def get_child_frame(self):
+            child_idx = self.idx - 1
+            if child_idx >= 0:
+                return self.thread.frame[child_idx]
+            else:
+                return SBFrame()
+
         def get_arguments(self):
             return self.GetVariables(True,False,False,False)
 
@@ -92,6 +99,7 @@ STRING_EXTENSION_OUTSIDE(SBFrame)
         register = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame.''')
         reg = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame''')
         parent = property(get_parent_frame, None, doc='''A read only property that returns the parent (caller) frame of the current frame.''')
+        child = property(get_child_frame, None, doc='''A read only property that returns the child (callee) frame of the current frame.''')
     %}
 #endif
 }


        


More information about the lldb-commits mailing list