xref: /llvm-project/lldb/test/API/commands/frame/recognizer/recognizer.py (revision 3c0fba4f2471cacb27d787c7d8f54f21d9dcafae)
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