[Lldb-commits] [lldb] f170f5f - [lldb] Add stop_reason_data property to SBThread python extensions (#117266)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Nov 22 10:30:48 PST 2024
Author: Dave Lee
Date: 2024-11-22T10:30:44-08:00
New Revision: f170f5fa80f244ccac51e9867de3ad823512a2d4
URL: https://github.com/llvm/llvm-project/commit/f170f5fa80f244ccac51e9867de3ad823512a2d4
DIFF: https://github.com/llvm/llvm-project/commit/f170f5fa80f244ccac51e9867de3ad823512a2d4.diff
LOG: [lldb] Add stop_reason_data property to SBThread python extensions (#117266)
Add a pythonic `stop_reason_data` property to `SBThread`. The property
produces a list of ints.
Added:
Modified:
lldb/bindings/interface/SBThreadExtensions.i
lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
Removed:
################################################################################
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.",
)
More information about the lldb-commits
mailing list