import lldb class OperatingSystemPlugIn(object): """Class that provides data for an instance of a LLDB 'OperatingSystemPython' plug-in class This version stops once with threads 0x111 and 0x222, then stops a second time with threads 0x111 and 0x333.""" def __init__(self, process): """Initialization needs a valid.SBProcess object. This plug-in will get created after a live process is valid and has stopped for the first time. """ self.process = None self.registers = None self.threads = None self.times_called = 0 if isinstance(process, lldb.SBProcess) and process.IsValid(): self.process = process self.threads = None # Will be an dictionary containing info for each thread def get_target(self): return self.process.target def get_thread_info(self): self.times_called += 1 if self.times_called == 1: self.threads = [ { "tid": 0x111, "name": "one", "queue": "queue1", "state": "stopped", "stop_reason": "none", "core": 1, }, { "tid": 0x222, "name": "two", "queue": "queue2", "state": "stopped", "stop_reason": "none", "core": 0, }, ] else: self.threads = [ { "tid": 0x111, "name": "one", "queue": "queue1", "state": "stopped", "stop_reason": "none", "core": 1, }, { "tid": 0x333, "name": "three", "queue": "queue3", "state": "stopped", "stop_reason": "none", "core": 0, }, ] return self.threads