https://github.com/kastiglione created 
https://github.com/llvm/llvm-project/pull/117266

None

>From 07925dfe397a3cf0aa93f37bfc275cf0125c645d Mon Sep 17 00:00:00 2001
From: Dave Lee <davelee....@gmail.com>
Date: Sun, 10 Nov 2024 09:35:06 -0800
Subject: [PATCH] [lldb] Add stop_reason_data property to SBThread python
 extensions

---
 lldb/bindings/interface/SBThreadExtensions.i           |  7 +++++++
 .../test/API/lang/c/stepping/TestStepAndBreakpoints.py | 10 ++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/lldb/bindings/interface/SBThreadExtensions.i 
b/lldb/bindings/interface/SBThreadExtensions.i
index bfcc4d17e8f829..860a2d765a6695 100644
--- a/lldb/bindings/interface/SBThreadExtensions.i
+++ b/lldb/bindings/interface/SBThreadExtensions.i
@@ -45,6 +45,12 @@ STRING_EXTENSION_OUTSIDE(SBThread)
                 frames.append(frame)
             return frames
 
+        def get_stop_reason_data(self):
+            return [
+                self.GetStopReasonDataAtIndex(idx)
+                for idx in range(self.GetStopReasonDataCount())
+            ]
+
         id = property(GetThreadID, None, doc='''A read only property that 
returns the thread ID as an integer.''')
         idx = property(GetIndexID, None, doc='''A read only property that 
returns the thread index ID as an integer. Thread index ID values start at 1 
and increment as threads come and go and can be used to uniquely identify 
threads.''')
         return_value = property(GetStopReturnValue, None, doc='''A read only 
property that returns an lldb object that represents the return value from the 
last stop (lldb.SBValue) if we just stopped due to stepping out of a 
function.''')
@@ -56,6 +62,7 @@ STRING_EXTENSION_OUTSIDE(SBThread)
         queue = property(GetQueueName, None, doc='''A read only property that 
returns the dispatch queue name of this thread as a string.''')
         queue_id = property(GetQueueID, None, doc='''A read only property that 
returns the dispatch queue id of this thread as an integer.''')
         stop_reason = property(GetStopReason, None, doc='''A read only 
property that returns an lldb enumeration value (see enumerations that start 
with "lldb.eStopReason") that represents the reason this thread stopped.''')
+        stop_reason_data = property(get_stop_reason_data, None, doc='''A read 
only property that returns the stop reason data as a list.''')
         is_suspended = property(IsSuspended, None, doc='''A read only property 
that returns a boolean value that indicates if this thread is suspended.''')
         is_stopped = property(IsStopped, None, doc='''A read only property 
that returns a boolean value that indicates if this thread is stopped but not 
exited.''')
     %}
diff --git a/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py 
b/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
index 8d0de40cdd7b68..9fe787bcaa9fb7 100644
--- a/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
+++ b/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
@@ -99,9 +99,7 @@ def test_and_python_api(self):
         frame = thread.GetFrameAtIndex(0)
         current_line = frame.GetLineEntry().GetLine()
         current_file = frame.GetLineEntry().GetFileSpec()
-        current_bp = []
-        current_bp.append(thread.GetStopReasonDataAtIndex(0))
-        current_bp.append(thread.GetStopReasonDataAtIndex(1))
+        current_bp = thread.stop_reason_data
 
         stop_id_before_expression = process.GetStopID()
         stop_id_before_including_expressions = process.GetStopID(True)
@@ -124,9 +122,9 @@ def test_and_python_api(self):
             lldb.eStopReasonBreakpoint,
             "We still say we stopped for a breakpoint.",
         )
-        self.assertTrue(
-            thread.GetStopReasonDataAtIndex(0) == current_bp[0]
-            and thread.GetStopReasonDataAtIndex(1) == current_bp[1],
+        self.assertEqual(
+            thread.stop_reason_data,
+            current_bp,
             "And it is the same breakpoint.",
         )
 

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

Reply via email to