xref: /llvm-project/lldb/test/API/functionalities/scripted_platform/my_scripted_platform.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
1import os
2
3import lldb
4from lldb.plugins.scripted_platform import ScriptedPlatform
5
6
7class MyScriptedPlatform(ScriptedPlatform):
8    def __init__(self, exe_ctx, args):
9        self.processes = {}
10
11        proc = {}
12        proc["name"] = "a.out"
13        proc["arch"] = "arm64-apple-macosx"
14        proc["pid"] = 420
15        proc["parent"] = 42
16        proc["uid"] = 501
17        proc["gid"] = 20
18        self.processes[420] = proc
19
20    def list_processes(self):
21        return self.processes
22
23    def get_process_info(self, pid):
24        return self.processes[pid]
25
26    def launch_process(self, launch_info):
27        return lldb.SBError()
28
29    def kill_process(self, pid):
30        return lldb.SBError()
31
32
33def __lldb_init_module(debugger, dict):
34    if not "SKIP_SCRIPTED_PLATFORM_SELECT" in os.environ:
35        debugger.HandleCommand(
36            "platform select scripted-platform -C %s.%s"
37            % (__name__, MyScriptedPlatform.__name__)
38        )
39    else:
40        print(
41            "Name of the class that will manage the scripted platform: '%s.%s'"
42            % (__name__, MyScriptedPlatform.__name__)
43        )
44