【问题标题】:LLVM : inject debugging lines in C++ source codeLLVM:在 C++ 源代码中注入调试行
【发布时间】:2013-03-14 11:33:13
【问题描述】:

我已下载 LLVM 3.1 并成功构建它。我的要求是在 C++ 源代码文件中添加一些调试行。我使用 CLANG 3.1 对模块进行了编码。但是 CLANG 报告了很多 gcc 没有的 AST 错误。请注意,我的代码使用 gcc 编译器编译得很好。此外,我的 C++ 程序有很多 #include 语句。 LLVM 期望相同的路径在路径中可用,并在不同级别再次失败。

【问题讨论】:

  • 我真的不清楚你在这里问什么。您是否想了解为什么 Clang 会在 GCC 编译的代码上报告错误?如果是这样,您最好分享代码并向我们展示您遇到的错误。你想知道为什么 GCC 能成功找到包含文件,而 Clang 不能吗?也许显示您用于两者的命令行。或者您可能在问如何编写一个在方法调用后添加 printf 的 LLVM 通行证?或者也许我完全误解了你,你完全在问别的东西?总之,请澄清。
  • 我已根据询问的详细信息更新了我的问题。是的,我正在寻找在我的 C++ 源代码文件中添加调试语句的方法
  • 我仍然完全不明白您要做什么。您能否提供几行代码并给出您调用的实际命令及其错误消息?

标签: c++ llvm llvm-gcc llvm-clang llvm-3.0


【解决方案1】:

Clang 有一个名为 libTooling 的新库,以简化使用 clang 编写源代码到源代码的工具。我建议你检查一下。使用它的最完整示例是clang-format,它根据一组格式化指南重新格式化任意 C++ 代码。它演示了如何在源代码级别重写 C++ 代码,同时保留所有语义。破解它在某些地方添加某些语句的插入应该不难。

【讨论】:

  • 感谢您提供详细信息,但当我通过示例程序尝试时收到以下错误:./clang-check t.cpp ---- LLVM 错误:打开 JSON 数据库时出错:没有这样的文件或目录
  • @Prakash:这不是很多细节......我认为你应该打开一个新问题,其中包含你所遵循的步骤和遇到的错误的具体细节,以及显示代码。顺便说一句,对于这些问题,您可能会在 cfe-dev 邮件列表中获得更好/更快的答案。
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多