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
|
||
|
}
|