我已经使用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
任何人都可以帮助我吗?感谢。
答案 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中的位进行更改。
断言无论如何都很有用,所以我会把它们保留下来。