Exemple #1
0
	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)
Exemple #2
0
	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] = []
Exemple #3
0
	def begin(self):
		self.process = validate(self.procgen(self.listener))
		self.procgen = None
		self.begun = True

		self.start()