diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2021-01-08 21:23:34 +0100 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2021-01-08 21:23:34 +0100 |
commit | 68e63210aeb74d2ef6ef0110da80d1aa78ba4148 (patch) | |
tree | f16c4018b1de4df591a2abf66ec44788222166aa /lldb/examples/python | |
parent | 0386f3d4f4183a93d7e029abef8110ae4f148335 (diff) | |
download | llvm-scripted-process.tar.gz |
[lldb/Target] Add Scripted Processes (WIP)scripted-process
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Diffstat (limited to 'lldb/examples/python')
-rw-r--r-- | lldb/examples/python/scripted_process.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lldb/examples/python/scripted_process.py b/lldb/examples/python/scripted_process.py new file mode 100644 index 000000000000..b7c43b63de32 --- /dev/null +++ b/lldb/examples/python/scripted_process.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +from lldb import ScriptedProcess + +class ScriptedMachCoreProcess(ScriptedProcess): + def __init__(self, target: lldb.SBTarget): + self.memory_regions = [] + self.threads = [] + self.loaded_images = [] + self.stops = [] + self.target = target + + def __init__(self, dictionary: lldb.SBStructuredData): + # User-defined + pass + + ### Main functionalities + def get_num_memory_regions(self) -> int: + return len(self.memory_region) + def get_memory_region_at_index(self, idx: int) -> lldb.SBMemoryRegionInfos: + return self.memory_region[idx] + def get_num_threads(self) -> int: + return len(self.threads) + def get_thread_at_index(self, idx: int) -> lldb.SBThread: + return self.threads[idx] + def get_register_for_thread(self, tid: int): + # Follow register data structure used in OS Plugins. + return reg + def read_memory_at_address(self, addr: int) -> lldb.SBData: + # dict[addr:data] ? + return addr + def get_loaded_images(self) -> list[str]: + return self.loaded_images + + ### Process state + def can_debug(self) -> bool: + return True + def is_alive(self) -> bool: + return True + +example = ScriptedMachCoreProcess("lol") +print(example.sb_target) +print(example.get_num_threads()) |