39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
|
# encoding: utf-8
|
||
|
|
||
|
import lldb
|
||
|
|
||
|
|
||
|
class MyFrameRecognizer(object):
|
||
|
def get_recognized_arguments(self, frame):
|
||
|
if frame.name == "foo":
|
||
|
arg1 = frame.EvaluateExpression("$arg1").signed
|
||
|
arg2 = frame.EvaluateExpression("$arg2").signed
|
||
|
val1 = (
|
||
|
frame.GetThread()
|
||
|
.GetProcess()
|
||
|
.GetTarget()
|
||
|
.CreateValueFromExpression("a", "%d" % arg1)
|
||
|
)
|
||
|
val2 = (
|
||
|
frame.GetThread()
|
||
|
.GetProcess()
|
||
|
.GetTarget()
|
||
|
.CreateValueFromExpression("b", "%d" % arg2)
|
||
|
)
|
||
|
return [val1, val2]
|
||
|
elif frame.name == "bar":
|
||
|
arg1 = frame.EvaluateExpression("$arg1").signed
|
||
|
val1 = (
|
||
|
frame.GetThread()
|
||
|
.GetProcess()
|
||
|
.GetTarget()
|
||
|
.CreateValueFromExpression("a", "(int *)%d" % arg1)
|
||
|
)
|
||
|
return [val1]
|
||
|
return []
|
||
|
|
||
|
|
||
|
class MyOtherFrameRecognizer(object):
|
||
|
def get_recognized_arguments(self, frame):
|
||
|
return []
|