1import lldb 2 3 4class OperatingSystemPlugIn(object): 5 """Class that provides data for an instance of a LLDB 'OperatingSystemPython' plug-in class""" 6 7 def __init__(self, process): 8 """Initialization needs a valid.SBProcess object. 9 10 This plug-in will get created after a live process is valid and has stopped for the first time. 11 """ 12 self.process = None 13 self.registers = None 14 self.threads = None 15 if isinstance(process, lldb.SBProcess) and process.IsValid(): 16 self.process = process 17 self.threads = None # Will be an dictionary containing info for each thread 18 19 def get_target(self): 20 return self.process.target 21 22 def get_thread_info(self): 23 if not self.threads: 24 self.threads = [ 25 { 26 "tid": 0x111111111, 27 "name": "one", 28 "queue": "queue1", 29 "state": "stopped", 30 "stop_reason": "none", 31 }, 32 { 33 "tid": 0x222222222, 34 "name": "two", 35 "queue": "queue2", 36 "state": "stopped", 37 "stop_reason": "none", 38 }, 39 { 40 "tid": 0x333333333, 41 "name": "three", 42 "queue": "queue3", 43 "state": "stopped", 44 "stop_reason": "sigstop", 45 "core": 0, 46 }, 47 ] 48 return self.threads 49