def run(self): while not self.shutdownRequested: event = lldb.SBEvent() #validate(self.listener.WaitForEvent(2**32-1, event)) if not self.listener.WaitForEvent(1, event): if self.shutdownRequested: break continue validate(event) #print("Got event " + getDescription(event)) self.onEvent(event)
def __init__(self, procgen): super(LLDBEventMachine, self).__init__() self.begun = False #self.daemon = True self.shutdownRequested = False self.listener = validate(lldb.SBListener("LLDBEventMachine")) self.procgen = procgen self.callbacks = {} for state in [ lldb.eStateAttaching, lldb.eStateConnected, lldb.eStateCrashed, lldb.eStateDetached, lldb.eStateExited, lldb.eStateInvalid, lldb.eStateLaunching, lldb.eStateRunning, lldb.eStateStepping, lldb.eStateStopped, lldb.eStateSuspended, lldb.eStateUnloaded ]: self.callbacks[state] = []
def begin(self): self.process = validate(self.procgen(self.listener)) self.procgen = None self.begun = True self.start()