# First, get the command interpreter:
ci = lldb.debugger.GetCommandInterpreter()
# Then create an `SBCommandReturnObject` to capture the output
output = lldb.SBCommandReturnObject()
# run an lldb command to get the superclass
ci.HandleCommand("po [" + address + " superclass]", output)
# get the output and strip the trailing line break
superclass = output.GetOutput().rstrip()
我不在电脑前(实际上是在里诺的一家餐馆:),所以下面的内容大多是粗略的,但它应该会给你指明正确的方向
您要做的是将表达式合成为字符串。假设您正在寻找foo(X),其中foo定义为
id foo(id arg)
你能做的就是做一根绳子
“(id)foo((id)0xaddr”
然后把它作为一个表达式来计算。在
我相信无论是SBTarget还是SBFrame EvaluateExpression方法 为此,您将传递您精心编制的字符串,并记住启用动态类型,因为您正在处理ObjC,并且很可能希望解析它们。在
该API将返回的是另一个SBValue。您可以查询值、摘要、描述,或者可以获取其子值等。。在
希望这有帮助。如果你需要更多的细节请随时询问,我会尽量填补空白,因为我有机会!在
我不知道如何使用
SBValue
,但可以使用SBCommandInterpreter
来使用lldb运行命令并捕获其输出:也许有更简单的方法(人们希望如此),但我找不到。在
相关问题 更多 >
编程相关推荐