C代码中的LLDB Python API调用函数

时间:2016-06-02 17:24:39

标签: python gdb lldb

例如,在编写GDB宏时,我可以给出类似的内容:

list_iterate $arg0

如果我的C代码中的list_iterate()函数看起来像

list_iterate(list_node *)

在LLDB Python API中,我该如何做同样的事情,即从C代码调用和执行函数?我已经搜索了文档,但似乎找不到像这样的东西

1 个答案:

答案 0 :(得分:2)

SBFrame::EvaluateExpression是你想要的功能。类似的东西:

(lldb) script
>>> options = lldb.SBExpressionOptions()
>>> result = lldb.frame.EvaluateExpression('printf("Hello there.\\n");', options)
Hello there.
>>> print result
(int) $1 = 13

注意,如果您正在编写脚本(或Python命令等),请不要使用lldb.frame,您可以从流程中获取所选框架,或者如果您正在编写命令,请使用传递的表单SBExecutionContext。参见:

http://lldb.llvm.org/python-reference.html

了解更多详情。