【问题标题】:How to get LLVM debug symbols如何获取 LLVM 调试符号
【发布时间】:2016-02-01 16:19:18
【问题描述】:

我有一个使用 Clang API 的 c++ 项目,我希望在调试项目时能够调试到 clang/llvm 函数。

我使用带有以下选项的 CMake 构建了 llvm+clang v3.7.0:

 -DCMAKE_INSTALL_PREFIX=$HOME/opt/llvm -DCMAKE_BUILD_TYPE=Debug

但 GDB 并没有介入 clang API 的功能。

我做错了什么?

【问题讨论】:

    标签: linux debugging llvm-clang


    【解决方案1】:

    很可能你正在做的不是在命令行上设置断点并带有 -cc1 。 clang fork 立即用于错误处理目的,因此如果您在 main 上设置断点,您会看到它发生。如果你想从 clang 开始调试,那么你应该:

    • 使用调试符号构建(看起来您正在这样做)
    • 使用 -v 运行 clang 以获取各种命令行,例如

      dzur:~/tmp> ~/builds/build-llvm/bin/clang -v t.c -S

      "/usr/local/google/home/echristo/builds/build-llvm/bin/clang-3.9" -cc1 -triple x86_64-unknown-linux-gnu -S -disable-free -main-file-name t.c -mrelocation-model 静态 -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -v -dwarf-column-info -debugger-tuning=gdb -coverage-file /usr/ local/google/home/echristo/tmp/t.c -resource-dir /usr/local/google/home/echristo/builds/build-llvm/bin/../lib/clang/3.9.0 -internal-isystem /usr /local/include -internal-isystem /usr/local/google/home/echristo/builds/build-llvm/bin/../lib/clang/3.9.0/include -internal-externc-isystem /usr/include/ x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir /usr/local/google/home/echristo/tmp -ferror-limit 19 -fmessage-length 120 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o t.s -x c t.c

    • 在此命令行中您希望在源代码中设置断点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多