brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 3681c17 Raw
49 lines · python
1import lldb2 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 = None13        self.registers = None14        self.threads = None15        if isinstance(process, lldb.SBProcess) and process.IsValid():16            self.process = process17            self.threads = None  # Will be an dictionary containing info for each thread18 19    def get_target(self):20        return self.process.target21 22    def get_thread_info(self):23        if not self.threads:24            self.threads = [25                {26                    "tid": 0x1,27                    "name": "one",28                    "queue": "queue1",29                    "state": "stopped",30                    "stop_reason": "none",31                },32                {33                    "tid": 0x2,34                    "name": "two",35                    "queue": "queue2",36                    "state": "stopped",37                    "stop_reason": "none",38                },39                {40                    "tid": 0x3,41                    "name": "three",42                    "queue": "queue3",43                    "state": "stopped",44                    "stop_reason": "sigstop",45                    "core": 0,46                },47            ]48        return self.threads49