如何使用eclipse调试clang

时间:2012-03-13 18:12:53

标签: eclipse compiler-construction llvm clang abstract-syntax-tree

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

  1. 我在调试配置中将“test.c”文件设置为参数。
  2. 去跑步>调试As->本地C / C ++应用程序。
  3. 它询问“选择要调试的本地应用程序”。我选择了“clang”并点击OK。
  4. 它开始构建代码。建造完成。
  5. 在调试窗口中停止在main()处。 (没有可用于main()的来源)
  6. 经过一些步骤后,它说“已终止:gdb Debugger(已退出。退出代码= 255)”
  7. 我没有接受clang代码(预处理器代码)。有人可以告诉我如何调试clang代码。我想看看clang中的代码流。以及clang如何构建AST。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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/

希望这会有所帮助。