1 STRING_EXTENSION_OUTSIDE(SBBreakpoint) 2 3 %extend lldb::SBBreakpoint { 4 #ifdef SWIGPYTHON 5 %pythoncode %{ 6 7 class locations_access(object): 8 '''A helper object that will lazily hand out locations for a breakpoint when supplied an index.''' 9 def __init__(self, sbbreakpoint): 10 self.sbbreakpoint = sbbreakpoint 11 12 def __len__(self): 13 if self.sbbreakpoint: 14 return int(self.sbbreakpoint.GetNumLocations()) 15 return 0 16 17 def __getitem__(self, key): 18 if isinstance(key, int): 19 count = len(self) 20 if -count <= key < count: 21 key %= count 22 return self.sbbreakpoint.GetLocationAtIndex(key) 23 return None 24 25 def get_locations_access_object(self): 26 '''An accessor function that returns a locations_access() object which allows lazy location access from a lldb.SBBreakpoint object.''' 27 return self.locations_access (self) 28 29 def get_breakpoint_location_list(self): 30 '''An accessor function that returns a list() that contains all locations in a lldb.SBBreakpoint object.''' 31 locations = [] 32 accessor = self.get_locations_access_object() 33 for idx in range(len(accessor)): 34 locations.append(accessor[idx]) 35 return locations 36 37 def __iter__(self): 38 '''Iterate over all breakpoint locations in a lldb.SBBreakpoint 39 object.''' 40 return lldb_iter(self, 'GetNumLocations', 'GetLocationAtIndex') 41 42 def __len__(self): 43 '''Return the number of breakpoint locations in a lldb.SBBreakpoint 44 object.''' 45 return self.GetNumLocations() 46 47 locations = property(get_breakpoint_location_list, None, doc='''A read only property that returns a list() of lldb.SBBreakpointLocation objects for this breakpoint.''') 48 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]).''') 49 id = property(GetID, None, doc='''A read only property that returns the ID of this breakpoint.''') 50 enabled = property(IsEnabled, SetEnabled, doc='''A read/write property that configures whether this breakpoint is enabled or not.''') 51 one_shot = property(IsOneShot, SetOneShot, doc='''A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.''') 52 num_locations = property(GetNumLocations, None, doc='''A read only property that returns the count of locations of this breakpoint.''') 53 %} 54 #endif 55 } 56