如何调试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 child
would work,也是。这样,您就不必费心去弄清楚 -cc1
.
后面的内容了
我已经使用 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 child
would work,也是。这样,您就不必费心去弄清楚 -cc1
.