我正在开始使用 LLDB,并正在按照此处的教程进行操作:https://lldb.llvm.org/python_reference/lldb.SBDebugger-class.html。每当我启动目标时,进程都会陷入启动状态并且永远不会启动。我在 bash 中尝试过 lldb ,它运行得很好。我已通读教程中的文档,但找不到有关启动状态的解释,或如何发现导致其卡住的原因。
系统是Ubuntu 18.04 64位双核8GB RAM,使用python2.7。
重现错误的最简单代码如下:
import lldb
import os
exe = './a.out'
db = lldb.SBDebugger.Create()
db.SetAsync(False)
target = db.CreateTargetWithFileAndArch(exe, 'x86_64-linux-gnu')
pro = target.LaunchSimple(None,None,os.getcwd())
print(pro)
运行 python 代码总是会给出以下输出:
SBProcess:pid = 0,状态=启动,线程= 0,可执行文件= a.out
a.out 只是用 clang++ -fstandalone-debug 编译的 heloworld.cpp
更新: 感谢 Jim 的建议,我尝试了 SBTarget.Launch() 并使用错误发现 lldb 找不到 lldb-server-6.0.0,因为它安装为 lldb-server-6.0
修复
sudo ln -s /usr/bin/lldb-server6.0 /usr/bin/lldb-server6.0.0
我在https://github.com/lldb-tools/lldb-mi/issues/66
找到了解决方案我通过设置解决了这个问题:
导出 LLDB_DEBUGSERVER_PATH=/usr/bin/lldb-server-16.0.6