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