Gdb 如何调试llvm源代码?

Gdb 如何调试llvm源代码?,gdb,llvm,debug-symbols,Gdb,Llvm,Debug Symbols,我已经用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时会遇到的一个问题

我已经用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+断言位而言,您需要执行以下配置行:

configure --enable-debug-symbols --disable-optimized
因为您似乎正在使用llvm的发布源。与svn中的位相比,默认值会发生变化


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

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

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

configure --enable-debug-symbols --disable-optimized
因为您似乎正在使用llvm的发布源。与svn中的位相比,默认值会发生变化


断言无论如何都是有用的,所以我会把它们保存在里面。

设置follow-fork模式子级。这样,您就不必费心去弄清楚接下来是什么了
-cc1

设置follow-fork模式子项。这样,您就不用费心去弄清楚接下来发生了什么错误了?Gdb说找不到c源文件和符号您有一个没有调试符号的clang发布版本。运行
configure
以获取调试版本时,必须删除
--enable optimized
标志,不使用--enable optimized flag进行配置。
llvm-3.4.2/build/Release+Asserts/
表示您有一个优化的构建发生了什么错误?Gdb表示找不到c源文件和符号您有一个没有调试符号的clang发布版本。运行
configure
获取调试版本时,必须删除
--enable optimized
标志。我做到了,没有--enable optimized标志进行配置。
llvm-3.4.2/build/Release+Asserts/
表示您有一个优化的版本