c++ - lldb 没有启动应用程序

标签 c++ debugging llvm lldb llvm-clang

这是我第一次体验 lldb 的命令行模式。不成功。

  1. 使用 clang、lld、lldb v5 (ubuntu 16.04) 安装了最小套件
  2. 使用 clang 构建的示例应用程序。
  3. 尝试开始:

lldb applcation

>run

error: process launch failed: unable to locate lldb-server-5.0.0

那么现在的问题是:

  1. 为什么 lldb 尝试运行服务器?这不是远程调试。
  2. 为什么 lldb 引用 5.0.0(以及在哪里更改此设置)?实际上,所有 llvm 实用程序都自动添加了带有 xxx-5.0 后缀的符号链接(symbolic link),但没有 xxx-5.0.0。如果这是指 lldb-server 本身,没有后缀,那将是合理的。
  3. 添加 lldb-server-5.0.0 符号链接(symbolic link)不能解决问题。

知道这应该如何工作吗?

顺便说一句额外的问题 - 似乎左/右/上/下箭头键在 lldb 控制台中不起作用?它不是移动光标,而是添加一个代码

(lldb) ^[[D^[[A^[[C^[[B

最佳答案

这是一个 known bug with LLDB 5.0 ,显然与 Debian 包装有关。解决方法与评论中链接的问题相似,但不相同。 (是的,有这个确切的问题,我已经确认了解决方案。)

strace 揭示了问题...

1887 26838 access("/usr/lib/llvm-5.0/bin/lldb-server-5.0.0", F_OK) = -1 ENOENT (No such file or directory)

这准确地指出了需要该符号链接(symbolic link)的位置。修复它就像一个终端命令一样简单...

$ sudo ln -s /usr/bin/lldb-server-5.0 /usr/lib/llvm-5.0/bin/lldb-server-5.0.0

关于c++ - lldb 没有启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46164427/

相关文章:

c++ - 如何在参数和返回类型上使用匹配的 const 修饰符编写函数?

C++ - 两个类相互实例化,不能使用前向声明

c++ - 继承std::ostream 和QString 的operator<< 的类

c++ - Swift - 使用 Objective-C 包装器调用 C++ 文件 - 传递 Int 值

node.js - 失败将 RemoteDev 监视器注入(inject) React Native 调试器

c - 顺序代码执行中的有趣行为

在 Mac 上调试 php?

objective-c - 了解 gcov 文件中的分支

xcode - CMake错误: Could not create named generator XCode

cmake - 从 llvm 源目录中使用 cmake 开发 llvm pass