Author: Jason Molenda
Date: 2025-02-06T09:19:22-08:00
New Revision: 18bd11889386a653edb1ef5eb501c6af0094478f

URL: 
https://github.com/llvm/llvm-project/commit/18bd11889386a653edb1ef5eb501c6af0094478f
DIFF: 
https://github.com/llvm/llvm-project/commit/18bd11889386a653edb1ef5eb501c6af0094478f.diff

LOG: [lldb][NFC] Add documentation for SBFrame::GetRegisters (#125969)

SBFrame::GetRegisters() (and the .registers / .regs extensions in
Python) returns an array of register-set's, not registers like you might
expect from the API name. Document this.

---------

Co-authored-by: Will Hawkins <wh...@obs.cr>

Added: 
    

Modified: 
    lldb/bindings/interface/SBFrameDocstrings.i
    lldb/bindings/interface/SBFrameExtensions.i

Removed: 
    


################################################################################
diff  --git a/lldb/bindings/interface/SBFrameDocstrings.i 
b/lldb/bindings/interface/SBFrameDocstrings.i
index 05a876a685a9127..723c1da7c26e2dc 100644
--- a/lldb/bindings/interface/SBFrameDocstrings.i
+++ b/lldb/bindings/interface/SBFrameDocstrings.i
@@ -78,6 +78,22 @@ See also SBThread."
     See also GetFunctionName()."
 ) lldb::SBFrame::IsInlined;
 
+%feature("docstring", "
+    Returns an SBValueList which is an array of one or more register
+    sets that exist for this thread.  
+    Each SBValue in the SBValueList represents one register-set. 
+    The first register-set will be the general purpose registers -- 
+    the registers printed by the `register read` command-line in lldb, with 
+    no additional arguments.  
+    The register-set SBValue will have a name, e.g. 
+    SBFrame::GetRegisters().GetValueAtIndex(0).GetName() 
+By convention, certain stubs choose to name their general-purpose register-set 
the 'General Purpose Registers', but that is not required.
+    register-set may not use that exact name, it is only a convention 
+    used by some stubs.
+    A register-set SBValue will have children, one child per register 
+    in the register-set."
+) lldb::SBFrame::GetRegisters;
+
 %feature("docstring", "
     Return true if this frame is artificial (e.g a frame synthesized to
     capture a tail call). Local variables may not be available in an artificial

diff  --git a/lldb/bindings/interface/SBFrameExtensions.i 
b/lldb/bindings/interface/SBFrameExtensions.i
index e0472280666ab9c..38d03abaee8f09e 100644
--- a/lldb/bindings/interface/SBFrameExtensions.i
+++ b/lldb/bindings/interface/SBFrameExtensions.i
@@ -87,8 +87,8 @@ STRING_EXTENSION_OUTSIDE(SBFrame)
         args = property(get_arguments, None, doc='''A read only property that 
returns a list() that contains a collection of lldb.SBValue objects that 
represent the argument variables in this stack frame.''')
         arguments = property(get_arguments, None, doc='''A read only property 
that returns a list() that contains a collection of lldb.SBValue objects that 
represent the argument variables in this stack frame.''')
         statics = property(get_statics, None, doc='''A read only property that 
returns a list() that contains a collection of lldb.SBValue objects that 
represent the static variables in this stack frame.''')
-        registers = property(GetRegisters, None, doc='''A read only property 
that returns a list() that contains a collection of lldb.SBValue objects that 
represent the CPU registers for this stack frame.''')
-        regs = property(GetRegisters, None, doc='''A read only property that 
returns a list() that contains a collection of lldb.SBValue objects that 
represent the CPU registers for this stack frame.''')
+        registers = property(GetRegisters, None, doc='''Returns the register 
sets for this thread as a list().  See SBFrame::GetRegisters() for details.''')
+        regs = property(GetRegisters, None, doc='''Returns the register sets 
for this thread as a list().  See SBFrame::GetRegisters() for details.''')
         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.''')


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to