如何调试llvm源码?

时间:2015-01-23 08:26:54

标签: gdb llvm debug-symbols

我已经使用configue --enable-debug-runtime构建了llvm调试版本。我想通过gdb堆栈跟踪学习llvm的exetution过程?但是当我使用gdb时出现错误:

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

任何人都可以帮助我吗?感谢。

2 个答案:

答案 0 :(得分:2)

set follow-fork-mode child would work也是。这样,你就不用费心去弄-cc1后的内容。

答案 1 :(得分:1)

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

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

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

因为您似乎正在使用llvm的发布源。默认值相对于svn中的位进行更改。

断言无论如何都很有用,所以我会把它们保留下来。