[Lldb-commits] [lldb] 20ca895 - [lldb] Add Python properties to SBBreakpoint and similar (#142215)
via lldb-commits
lldb-commits at lists.llvm.org
Tue Jun 3 09:38:25 PDT 2025
Author: Dave Lee
Date: 2025-06-03T09:38:22-07:00
New Revision: 20ca8958604dc26d5b480cf9109b861d05341ac8
URL: https://github.com/llvm/llvm-project/commit/20ca8958604dc26d5b480cf9109b861d05341ac8
DIFF: https://github.com/llvm/llvm-project/commit/20ca8958604dc26d5b480cf9109b861d05341ac8.diff
LOG: [lldb] Add Python properties to SBBreakpoint and similar (#142215)
Update `SBBreakpoint`, `SBBreakpointLocation`, and `SBBreakpointName` to
add Python properties for many of their getters/setters.
Added:
Modified:
lldb/bindings/interface/SBBreakpointExtensions.i
lldb/bindings/interface/SBBreakpointLocationExtensions.i
lldb/bindings/interface/SBBreakpointNameExtensions.i
lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
lldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
lldb/test/API/functionalities/stop-on-sharedlibrary-load/TestStopOnSharedlibraryEvents.py
Removed:
################################################################################
diff --git a/lldb/bindings/interface/SBBreakpointExtensions.i b/lldb/bindings/interface/SBBreakpointExtensions.i
index 6bc781a327778..82fc3ab0e7c04 100644
--- a/lldb/bindings/interface/SBBreakpointExtensions.i
+++ b/lldb/bindings/interface/SBBreakpointExtensions.i
@@ -50,6 +50,15 @@ STRING_EXTENSION_OUTSIDE(SBBreakpoint)
enabled = property(IsEnabled, SetEnabled, doc='''A read/write property that configures whether this breakpoint is enabled or not.''')
one_shot = property(IsOneShot, SetOneShot, doc='''A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.''')
num_locations = property(GetNumLocations, None, doc='''A read only property that returns the count of locations of this breakpoint.''')
+ auto_continue = property(GetAutoContinue, SetAutoContinue, doc='A read/write property that configures the auto-continue property of this breakpoint.')
+ condition = property(GetCondition, SetCondition, doc='A read/write property that configures the condition of this breakpoint.')
+ hit_count = property(GetHitCount, doc='A read only property that returns the hit count of this breakpoint.')
+ ignore_count = property(GetIgnoreCount, SetIgnoreCount, doc='A read/write property that configures the ignore count of this breakpoint.')
+ queue_name = property(GetQueueName, SetQueueName, doc='A read/write property that configures the queue name criteria of this breakpoint.')
+ target = property(GetTarget, doc='A read only property that returns the target of this breakpoint.')
+ thread_id = property(GetThreadID, SetThreadID, doc='A read/write property that configures the thread id criteria of this breakpoint.')
+ thread_index = property(GetThreadIndex, SetThreadIndex, doc='A read/write property that configures the thread index criteria of this breakpoint.')
+ thread_name = property(GetThreadName, SetThreadName, doc='A read/write property that configures the thread name criteria of this breakpoint.')
%}
#endif
}
diff --git a/lldb/bindings/interface/SBBreakpointLocationExtensions.i b/lldb/bindings/interface/SBBreakpointLocationExtensions.i
index 40027790a5e8d..12c87eb2c0fe6 100644
--- a/lldb/bindings/interface/SBBreakpointLocationExtensions.i
+++ b/lldb/bindings/interface/SBBreakpointLocationExtensions.i
@@ -7,6 +7,19 @@ STRING_EXTENSION_LEVEL_OUTSIDE(SBBreakpointLocation, lldb::eDescriptionLevelFull
# our own equality operator here
def __eq__(self, other):
return not self.__ne__(other)
+
+ addr = property(GetAddress, doc='A read only property that returns the address of this breakpoint location.')
+ auto_continue = property(GetAutoContinue, SetAutoContinue, doc='A read/write property that configures the auto-continue property of this breakpoint location.')
+ breakpoint = property(GetBreakpoint, doc='A read only property that returns the parent breakpoint of this breakpoint location.')
+ condition = property(GetCondition, SetCondition, doc='A read/write property that configures the condition of this breakpoint location.')
+ hit_count = property(GetHitCount, doc='A read only property that returns the hit count of this breakpoint location.')
+ id = property(GetID, doc='A read only property that returns the id of this breakpoint location.')
+ ignore_count = property(GetIgnoreCount, SetIgnoreCount, doc='A read/write property that configures the ignore count of this breakpoint location.')
+ load_addr = property(GetLoadAddress, doc='A read only property that returns the load address of this breakpoint location.')
+ queue_name = property(GetQueueName, SetQueueName, doc='A read/write property that configures the queue name criteria of this breakpoint location.')
+ thread_id = property(GetThreadID, SetThreadID, doc='A read/write property that configures the thread id criteria of this breakpoint location.')
+ thread_index = property(GetThreadIndex, SetThreadIndex, doc='A read/write property that configures the thread index criteria of this breakpoint location.')
+ thread_name = property(GetThreadName, SetThreadName, doc='A read/write property that configures the thread name criteria of this breakpoint location.')
%}
#endif
}
diff --git a/lldb/bindings/interface/SBBreakpointNameExtensions.i b/lldb/bindings/interface/SBBreakpointNameExtensions.i
index 2cd47a4a32238..022f4c969e5cb 100644
--- a/lldb/bindings/interface/SBBreakpointNameExtensions.i
+++ b/lldb/bindings/interface/SBBreakpointNameExtensions.i
@@ -7,6 +7,16 @@ STRING_EXTENSION_OUTSIDE(SBBreakpointName)
# our own equality operator here
def __eq__(self, other):
return not self.__ne__(other)
+
+ auto_continue = property(GetAutoContinue, SetAutoContinue, doc='A read/write property that configures the auto-continue property of this breakpoint name.')
+ condition = property(GetCondition, SetCondition, doc='A read/write property that configures the condition of this breakpoint name.')
+ enabled = property(IsEnabled, SetEnabled, doc='''A read/write property that configures whether this breakpoint name is enabled or not.''')
+ ignore_count = property(GetIgnoreCount, SetIgnoreCount, doc='A read/write property that configures the ignore count of this breakpoint name.')
+ one_shot = property(IsOneShot, SetOneShot, doc='''A read/write property that configures whether this breakpoint name is one-shot (deleted when hit) or not.''')
+ queue_name = property(GetQueueName, SetQueueName, doc='A read/write property that configures the queue name criteria of this breakpoint name.')
+ thread_id = property(GetThreadID, SetThreadID, doc='A read/write property that configures the thread id criteria of this breakpoint name.')
+ thread_index = property(GetThreadIndex, SetThreadIndex, doc='A read/write property that configures the thread index criteria of this breakpoint name.')
+ thread_name = property(GetThreadName, SetThreadName, doc='A read/write property that configures the thread name criteria of this breakpoint name.')
%}
#endif
}
diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py b/lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
index c7b184ea31463..1fa03c71e85a0 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
@@ -175,11 +175,11 @@ def ignore_vrs_condition(self, use_location):
if use_location:
loc = bkpt.location[0]
self.assertTrue(loc.IsValid(), "Got a valid location")
- loc.SetIgnoreCount(2)
- loc.SetCondition("i >= 3")
+ loc.ignore_count = 2
+ loc.condition = "i >= 3"
else:
- bkpt.SetIgnoreCount(2)
- bkpt.SetCondition("i >= 3")
+ bkpt.ignore_count = 2
+ bkpt.condition = "i >= 3"
threads = lldbutil.continue_to_breakpoint(process, bkpt)
self.assertEqual(len(threads), 1, "Hit the breakpoint")
@@ -188,4 +188,4 @@ def ignore_vrs_condition(self, use_location):
val = var.GetValueAsUnsigned(10000)
self.assertNotEqual(val, 10000, "Got the fail value for i")
self.assertEqual(val, 5, "We didn't stop the right number of times")
- self.assertEqual(bkpt.GetHitCount(), 3, "Hit count is not right")
+ self.assertEqual(bkpt.hit_count, 3, "Hit count is not right")
diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py b/lldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
index 0f9510c4507d0..1d457415262be 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
@@ -216,16 +216,14 @@ def do_check_using_names(self):
)
def check_option_values(self, bp_object):
- self.assertEqual(bp_object.IsOneShot(), self.is_one_shot, "IsOneShot")
- self.assertEqual(bp_object.GetIgnoreCount(), self.ignore_count, "IgnoreCount")
- self.assertEqual(bp_object.GetCondition(), self.condition, "Condition")
- self.assertEqual(
- bp_object.GetAutoContinue(), self.auto_continue, "AutoContinue"
- )
- self.assertEqual(bp_object.GetThreadID(), self.tid, "Thread ID")
- self.assertEqual(bp_object.GetThreadIndex(), self.tidx, "Thread Index")
- self.assertEqual(bp_object.GetThreadName(), self.thread_name, "Thread Name")
- self.assertEqual(bp_object.GetQueueName(), self.queue_name, "Queue Name")
+ self.assertEqual(bp_object.one_shot, self.is_one_shot, "IsOneShot")
+ self.assertEqual(bp_object.ignore_count, self.ignore_count, "IgnoreCount")
+ self.assertEqual(bp_object.condition, self.condition, "Condition")
+ self.assertEqual(bp_object.auto_continue, self.auto_continue, "AutoContinue")
+ self.assertEqual(bp_object.thread_id, self.tid, "Thread ID")
+ self.assertEqual(bp_object.thread_index, self.tidx, "Thread Index")
+ self.assertEqual(bp_object.thread_name, self.thread_name, "Thread Name")
+ self.assertEqual(bp_object.queue_name, self.queue_name, "Queue Name")
set_cmds = lldb.SBStringList()
bp_object.GetCommandLineCommands(set_cmds)
self.assertEqual(
diff --git a/lldb/test/API/functionalities/stop-on-sharedlibrary-load/TestStopOnSharedlibraryEvents.py b/lldb/test/API/functionalities/stop-on-sharedlibrary-load/TestStopOnSharedlibraryEvents.py
index f68eb4196c125..74ad3b2070e10 100644
--- a/lldb/test/API/functionalities/stop-on-sharedlibrary-load/TestStopOnSharedlibraryEvents.py
+++ b/lldb/test/API/functionalities/stop-on-sharedlibrary-load/TestStopOnSharedlibraryEvents.py
@@ -17,7 +17,7 @@ def test_stopping_breakpoints(self):
@no_debug_info_test
def test_auto_continue(self):
def auto_continue(bkpt):
- bkpt.SetAutoContinue(True)
+ bkpt.auto_continue = True
self.do_test(auto_continue)
@@ -26,7 +26,7 @@ def auto_continue(bkpt):
@no_debug_info_test
def test_failing_condition(self):
def condition(bkpt):
- bkpt.SetCondition("1 == 2")
+ bkpt.condition = "1 == 2"
self.do_test(condition)
More information about the lldb-commits
mailing list