199451b44SJordan Rupprecht# encoding: utf-8 299451b44SJordan Rupprecht 399451b44SJordan Rupprechtimport lldb 499451b44SJordan Rupprecht 52238dcc3SJonas Devlieghere 699451b44SJordan Rupprechtclass MyFrameRecognizer(object): 799451b44SJordan Rupprecht def get_recognized_arguments(self, frame): 899451b44SJordan Rupprecht if frame.name == "foo": 999451b44SJordan Rupprecht arg1 = frame.EvaluateExpression("$arg1").signed 1099451b44SJordan Rupprecht arg2 = frame.EvaluateExpression("$arg2").signed 112238dcc3SJonas Devlieghere val1 = ( 122238dcc3SJonas Devlieghere frame.GetThread() 132238dcc3SJonas Devlieghere .GetProcess() 142238dcc3SJonas Devlieghere .GetTarget() 152238dcc3SJonas Devlieghere .CreateValueFromExpression("a", "%d" % arg1) 162238dcc3SJonas Devlieghere ) 172238dcc3SJonas Devlieghere val2 = ( 182238dcc3SJonas Devlieghere frame.GetThread() 192238dcc3SJonas Devlieghere .GetProcess() 202238dcc3SJonas Devlieghere .GetTarget() 212238dcc3SJonas Devlieghere .CreateValueFromExpression("b", "%d" % arg2) 222238dcc3SJonas Devlieghere ) 2399451b44SJordan Rupprecht return [val1, val2] 2499451b44SJordan Rupprecht elif frame.name == "bar": 2599451b44SJordan Rupprecht arg1 = frame.EvaluateExpression("$arg1").signed 262238dcc3SJonas Devlieghere val1 = ( 272238dcc3SJonas Devlieghere frame.GetThread() 282238dcc3SJonas Devlieghere .GetProcess() 292238dcc3SJonas Devlieghere .GetTarget() 302238dcc3SJonas Devlieghere .CreateValueFromExpression("a", "(int *)%d" % arg1) 312238dcc3SJonas Devlieghere ) 3299451b44SJordan Rupprecht return [val1] 3399451b44SJordan Rupprecht return [] 3499451b44SJordan Rupprecht 352238dcc3SJonas Devlieghere 3699451b44SJordan Rupprechtclass MyOtherFrameRecognizer(object): 3799451b44SJordan Rupprecht def get_recognized_arguments(self, frame): 3899451b44SJordan Rupprecht return [] 39*3c0fba4fSAdrian Prantl 40*3c0fba4fSAdrian Prantl 41*3c0fba4fSAdrian Prantlclass BazFrameRecognizer(object): 42*3c0fba4fSAdrian Prantl def should_hide(self, frame): 43*3c0fba4fSAdrian Prantl return "baz" in frame.name 44