gdb - clang 3.1 在 Ubuntu 12.04 上构建的二进制文件无法使用 gdb 进行调试

标签 gdb llvm clang

Ubuntu 12.04.1 尝试使用原始源 clang+llvm 3.0,效果很好。为 clang++ 添加 -g 选项后,我可以使用 gdb 使用符号+源来调试文件。

但是如果我构建 clang+llvm 3.1 并使用预构建的二进制文件 http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-linux-ubuntu_12.04.tar.gz

clang++ -g 编译相同的示例源代码,然后使用gdb进行调试, 我无法列出源,也无法单步执行源,“next”命令将完成执行主函数。

有什么线索吗?

最佳答案

这是一个已知错误,在主干中尚未解决。

http://llvm.org/bugs/show_bug.cgi?id=13211

作为解决方法,您可以尝试以源文件名和行号而不是函数名称的形式设置断点。

$(gdb) 中断 main.cpp:5

关于gdb - clang 3.1 在 Ubuntu 12.04 上构建的二进制文件无法使用 gdb 进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262641/

相关文章:

c - 为什么我的vaiable不遵循gdb stm32项目中的代码

c++ - 使用 gdb 检查标准容器 (std::map) 内容

llvm - 从 ExecutionEngine 调用 C/C++ 函数

c++ - 如何识别 LLVM 位码中的循环?

linux - LLDB 在内存转储中显示陷阱操作码

c++ - "candidate template ignored: substitution failure:"编译错误?

c++ - Clang 工具无法在 Ubuntu 16.10 上找到所需的库

c++ - gdb 中的递归 sizeof?

c++ - qapps运行良好但断点有时会产生段错误

c - 将自定义 assert() 与 AddressSanitizer 集成