1*99451b44SJordan Rupprecht 2*99451b44SJordan Rupprecht 3*99451b44SJordan Rupprechtimport lldb 4*99451b44SJordan Rupprecht 5*99451b44SJordan Rupprecht# bunch of different kinds of python callables that should 6*99451b44SJordan Rupprecht# all work as commands. 7*99451b44SJordan Rupprecht 8*99451b44SJordan Rupprechtdef check(debugger, command, context, result, internal_dict): 9*99451b44SJordan Rupprecht if (not isinstance(debugger, lldb.SBDebugger) or 10*99451b44SJordan Rupprecht not isinstance(command, str) or 11*99451b44SJordan Rupprecht not isinstance(result, lldb.SBCommandReturnObject) or 12*99451b44SJordan Rupprecht not isinstance(internal_dict, dict) or 13*99451b44SJordan Rupprecht (not context is None and 14*99451b44SJordan Rupprecht not isinstance(context, lldb.SBExecutionContext))): 15*99451b44SJordan Rupprecht raise Exception() 16*99451b44SJordan Rupprecht result.AppendMessage("All good.") 17*99451b44SJordan Rupprecht 18*99451b44SJordan Rupprechtdef vfoobar(*args): 19*99451b44SJordan Rupprecht check(*args) 20*99451b44SJordan Rupprecht 21*99451b44SJordan Rupprechtdef v5foobar(debugger, command, context, result, internal_dict, *args): 22*99451b44SJordan Rupprecht check(debugger, command, context, result, internal_dict) 23*99451b44SJordan Rupprecht 24*99451b44SJordan Rupprechtdef foobar(debugger, command, context, result, internal_dict): 25*99451b44SJordan Rupprecht check(debugger, command, context, result, internal_dict) 26*99451b44SJordan Rupprecht 27*99451b44SJordan Rupprechtdef foobar4(debugger, command, result, internal_dict): 28*99451b44SJordan Rupprecht check(debugger, command, None, result, internal_dict) 29*99451b44SJordan Rupprecht 30*99451b44SJordan Rupprechtclass FooBar: 31*99451b44SJordan Rupprecht @staticmethod 32*99451b44SJordan Rupprecht def sfoobar(debugger, command, context, result, internal_dict): 33*99451b44SJordan Rupprecht check(debugger, command, context, result, internal_dict) 34*99451b44SJordan Rupprecht 35*99451b44SJordan Rupprecht @classmethod 36*99451b44SJordan Rupprecht def cfoobar(cls, debugger, command, context, result, internal_dict): 37*99451b44SJordan Rupprecht check(debugger, command, context, result, internal_dict) 38*99451b44SJordan Rupprecht 39*99451b44SJordan Rupprecht def ifoobar(self, debugger, command, context, result, internal_dict): 40*99451b44SJordan Rupprecht check(debugger, command, context, result, internal_dict) 41*99451b44SJordan Rupprecht 42*99451b44SJordan Rupprecht def __call__(self, debugger, command, context, result, internal_dict): 43*99451b44SJordan Rupprecht check(debugger, command, context, result, internal_dict) 44*99451b44SJordan Rupprecht 45*99451b44SJordan Rupprecht @staticmethod 46*99451b44SJordan Rupprecht def sfoobar4(debugger, command, result, internal_dict): 47*99451b44SJordan Rupprecht check(debugger, command, None, result, internal_dict) 48*99451b44SJordan Rupprecht 49*99451b44SJordan Rupprecht @classmethod 50*99451b44SJordan Rupprecht def cfoobar4(cls, debugger, command, result, internal_dict): 51*99451b44SJordan Rupprecht check(debugger, command, None, result, internal_dict) 52*99451b44SJordan Rupprecht 53*99451b44SJordan Rupprecht def ifoobar4(self, debugger, command, result, internal_dict): 54*99451b44SJordan Rupprecht check(debugger, command, None, result, internal_dict) 55*99451b44SJordan Rupprecht 56*99451b44SJordan Rupprechtclass FooBar4: 57*99451b44SJordan Rupprecht def __call__(self, debugger, command, result, internal_dict): 58*99451b44SJordan Rupprecht check(debugger, command, None, result, internal_dict) 59*99451b44SJordan Rupprecht 60*99451b44SJordan RupprechtFooBarObj = FooBar() 61*99451b44SJordan Rupprecht 62*99451b44SJordan RupprechtFooBar4Obj = FooBar4()