如何调试llvm源码?

How to debug llvm source?

我已经使用 configue --enable-debug-runtime 构建了 llvm 调试版本。我想通过 gdb 堆栈跟踪了解 llvm 的执行过程?但是当我使用 gdb 时发生错误:

llvm-3.4.2/build/Release+Asserts/bin$ gdb ./clang
(gdb) b clang::CreateLLVMCodeGen (...)
(gdb) r ./clang ~/tmp/helloworld.c -o helloworld

谁能帮帮我?谢谢

您在尝试调试 clang 时会遇到的一个问题是 clang 的第一次调用会产生另一个 clang 进程。您应该做的是使用 clang -v 获取 -cc1 命令行并将其用作 gdb 中的 运行 参数。

就 Release+Asserts 位而言,您需要执行此配置行:

configure --enable-debug-symbols --disable-optimized

因为您似乎在使用 llvm 的发布源。默认值随 svn 中的位而变化。

无论如何,断言都是有用的,所以我会保留它们。

set follow-fork-mode childwould work,也是。这样,您就不必费心去弄清楚 -cc1.

后面的内容了