This reverts 3 commit: -f0731d5b61. -8e0a087571. -f2f5d6fb8d. This changes were introduced to silence the warnings that are printed when generating the lldb module documentation for the website but it changed the python bindings and causes test failures on the macos bot: https://green.lab.llvm.org/green/job/lldb-cmake/59438/ We will have to consider other options to silence these warnings.
56 lines
2.7 KiB
OpenEdge ABL
56 lines
2.7 KiB
OpenEdge ABL
STRING_EXTENSION_OUTSIDE(SBBreakpoint)
|
|
|
|
%extend lldb::SBBreakpoint {
|
|
#ifdef SWIGPYTHON
|
|
%pythoncode %{
|
|
|
|
class locations_access(object):
|
|
'''A helper object that will lazily hand out locations for a breakpoint when supplied an index.'''
|
|
def __init__(self, sbbreakpoint):
|
|
self.sbbreakpoint = sbbreakpoint
|
|
|
|
def __len__(self):
|
|
if self.sbbreakpoint:
|
|
return int(self.sbbreakpoint.GetNumLocations())
|
|
return 0
|
|
|
|
def __getitem__(self, key):
|
|
if isinstance(key, int):
|
|
count = len(self)
|
|
if -count <= key < count:
|
|
key %= count
|
|
return self.sbbreakpoint.GetLocationAtIndex(key)
|
|
return None
|
|
|
|
def get_locations_access_object(self):
|
|
'''An accessor function that returns a locations_access() object which allows lazy location access from a lldb.SBBreakpoint object.'''
|
|
return self.locations_access (self)
|
|
|
|
def get_breakpoint_location_list(self):
|
|
'''An accessor function that returns a list() that contains all locations in a lldb.SBBreakpoint object.'''
|
|
locations = []
|
|
accessor = self.get_locations_access_object()
|
|
for idx in range(len(accessor)):
|
|
locations.append(accessor[idx])
|
|
return locations
|
|
|
|
def __iter__(self):
|
|
'''Iterate over all breakpoint locations in a lldb.SBBreakpoint
|
|
object.'''
|
|
return lldb_iter(self, 'GetNumLocations', 'GetLocationAtIndex')
|
|
|
|
def __len__(self):
|
|
'''Return the number of breakpoint locations in a lldb.SBBreakpoint
|
|
object.'''
|
|
return self.GetNumLocations()
|
|
|
|
locations = property(get_breakpoint_location_list, None, doc='''A read only property that returns a list() of lldb.SBBreakpointLocation objects for this breakpoint.''')
|
|
location = property(get_locations_access_object, None, doc='''A read only property that returns an object that can access locations by index (not location ID) (location = bkpt.location[12]).''')
|
|
id = property(GetID, None, doc='''A read only property that returns the ID of this breakpoint.''')
|
|
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.''')
|
|
%}
|
|
#endif
|
|
}
|