1

我正在尝试使用eclipse调试clang。我在预处理器的构造函数中为clang/lib/lex/preprocessor.cpp放置了一个断点。如何使用eclipse调试clang

  1. 我在调试配置中设置了一个“test.c”文件作为参数。
  2. 试图运行 - >调试为 - >本地C/C++应用程序。
  3. 它询问“选择本地应用程序调试”。我选择了“clang”,然后点击OK。
  4. 它开始构建代码。建立完成。
  5. 在调试窗口中的main()处停止。
  6. 一些步骤接管后(无主()来源),它说:“终止:GDB调试器(已退出的退出代码= 255)”

我不会带到铛代码(预处理程序代码)。有人可以告诉我如何调试铛代码。?我想看看clang中的代码流。以及铿锵如何构建AST。

回答

2

Clang二进制文件实际上包含两个应用程序:驱动程序和编译器前端本身。后者通过-cc1 cmdline选项执行。因此,只需在clang命令行中添加-v以查看工具调用的实际顺序,就可以获取前端cmdline(包含-cc1的一个)并使用此cmdline进行调试。

+0

我不想用clang来调试我的代码。我想调试clang的代码。在eclipse中将LLVM源打开为“Makefile Project”并对其进行调试。 – 2012-03-14 09:41:02

+0

是的,我写了clang本身的指令。 – 2012-03-14 16:28:16

0

有同样的问题 - 当你建立你的二进制文件时,你错过了-g标志(启用调试信息)。 当运行CMake的与CMAKE_BUILD_TYPE选项来运行它:

cmake -G "Eclipse <CDT_Version> - Unix Makefiles" -D_ECLIPSE_VERSION=<eclipse_version> -DCMAKE_BUILD_TYPE=Debug <llvm_source_path> 

例如:

cmake -G "Eclipse CDT4 - Unix Makefiles" -D_ECLIPSE_VERSION=4.4 -DCMAKE_BUILD_TYPE=Debug ../llvm/ 

希望这有助于。