我有这个简单的python脚本:
#~/.lldb/scripts/fprint.py
import lldb
def fprint(filePath, text):
with open(filePath,'a') as f: f.write(text)
def __lldb_init_module(debugger, internal_dict):
debugger.HandleCommand('command script add -f fprint.fprint fprint')
print '"fprint(filePath, text)" command is here!'
我在~/.lldbinit
声明。
当试图从lldb
调用它时,我得到了这个奇怪的错误:
%lldb
" fprint(filePath,text)"命令在这里!
(lldb)fprint' tmp.txt' ' Hello World!'
TypeError:fprint()只需要2个参数(给定4个)
(lldb)
那么,我做错了什么?
答案 0 :(得分:0)
您所做的不仅仅是调用Python函数,而是定义了一个Python支持的lldb命令行命令。这有一些要求,特别是,实现LLDB命令的Python函数必须具有正确的签名。参见"使用PYTHON功能创建一个新的LLDB命令"在http://lldb.llvm.org/python-reference.html了解更多详情。
注意,如果您只想使用lldb的嵌入式Python解释器调用Python函数,则可以使用"脚本"命令:
(lldb) script fprint("tmp.txt", "Hello world")