| import lldb |
| |
| # bunch of different kinds of python callables that should |
| # all work as commands. |
| |
| |
| def check(debugger, command, context, result, internal_dict): |
| if ( |
| not isinstance(debugger, lldb.SBDebugger) |
| or not isinstance(command, str) |
| or not isinstance(result, lldb.SBCommandReturnObject) |
| or not isinstance(internal_dict, dict) |
| or (not context is None and not isinstance(context, lldb.SBExecutionContext)) |
| ): |
| raise Exception() |
| result.AppendMessage("All good.") |
| |
| |
| def vfoobar(*args): |
| check(*args) |
| |
| |
| def v5foobar(debugger, command, context, result, internal_dict, *args): |
| check(debugger, command, context, result, internal_dict) |
| |
| |
| def foobar(debugger, command, context, result, internal_dict): |
| check(debugger, command, context, result, internal_dict) |
| |
| |
| def foobar4(debugger, command, result, internal_dict): |
| check(debugger, command, None, result, internal_dict) |
| |
| |
| class FooBar: |
| @staticmethod |
| def sfoobar(debugger, command, context, result, internal_dict): |
| check(debugger, command, context, result, internal_dict) |
| |
| @classmethod |
| def cfoobar(cls, debugger, command, context, result, internal_dict): |
| check(debugger, command, context, result, internal_dict) |
| |
| def ifoobar(self, debugger, command, context, result, internal_dict): |
| check(debugger, command, context, result, internal_dict) |
| |
| def __call__(self, debugger, command, context, result, internal_dict): |
| check(debugger, command, context, result, internal_dict) |
| |
| @staticmethod |
| def sfoobar4(debugger, command, result, internal_dict): |
| check(debugger, command, None, result, internal_dict) |
| |
| @classmethod |
| def cfoobar4(cls, debugger, command, result, internal_dict): |
| check(debugger, command, None, result, internal_dict) |
| |
| def ifoobar4(self, debugger, command, result, internal_dict): |
| check(debugger, command, None, result, internal_dict) |
| |
| |
| class FooBar4: |
| def __call__(self, debugger, command, result, internal_dict): |
| check(debugger, command, None, result, internal_dict) |
| |
| |
| FooBarObj = FooBar() |
| |
| FooBar4Obj = FooBar4() |