brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 5fb7ad2 Raw
70 lines · python
1import lldb2 3# bunch of different kinds of python callables that should4# all work as commands.5 6 7def check(debugger, command, context, result, internal_dict):8    if (9        not isinstance(debugger, lldb.SBDebugger)10        or not isinstance(command, str)11        or not isinstance(result, lldb.SBCommandReturnObject)12        or not isinstance(internal_dict, dict)13        or (not context is None and not isinstance(context, lldb.SBExecutionContext))14    ):15        raise Exception()16    result.AppendMessage("All good.")17 18 19def vfoobar(*args):20    check(*args)21 22 23def v5foobar(debugger, command, context, result, internal_dict, *args):24    check(debugger, command, context, result, internal_dict)25 26 27def foobar(debugger, command, context, result, internal_dict):28    check(debugger, command, context, result, internal_dict)29 30 31def foobar4(debugger, command, result, internal_dict):32    check(debugger, command, None, result, internal_dict)33 34 35class FooBar:36    @staticmethod37    def sfoobar(debugger, command, context, result, internal_dict):38        check(debugger, command, context, result, internal_dict)39 40    @classmethod41    def cfoobar(cls, debugger, command, context, result, internal_dict):42        check(debugger, command, context, result, internal_dict)43 44    def ifoobar(self, debugger, command, context, result, internal_dict):45        check(debugger, command, context, result, internal_dict)46 47    def __call__(self, debugger, command, context, result, internal_dict):48        check(debugger, command, context, result, internal_dict)49 50    @staticmethod51    def sfoobar4(debugger, command, result, internal_dict):52        check(debugger, command, None, result, internal_dict)53 54    @classmethod55    def cfoobar4(cls, debugger, command, result, internal_dict):56        check(debugger, command, None, result, internal_dict)57 58    def ifoobar4(self, debugger, command, result, internal_dict):59        check(debugger, command, None, result, internal_dict)60 61 62class FooBar4:63    def __call__(self, debugger, command, result, internal_dict):64        check(debugger, command, None, result, internal_dict)65 66 67FooBarObj = FooBar()68 69FooBar4Obj = FooBar4()70