静态库项目的eclipse-cpp-luna-SR1中没有源代码覆盖颜色突出显示

时间:2014-11-17 22:50:16

标签: eclipse-cdt gcov

我在Linux和Windows上使用 eclipse-cpp-luna-SR1 ,工具链 gcc 4.9.1
代码分为两个项目:

  • 静态库项目中的生产代码
    Properties|C/C++ Build|Settings|Debugging|Generate gcov information (-ftest-coverage -fprofile-arcs)
    已启用
  • 可执行文件项目中的客户端/测试代码
    此外,Generate gcov information已启用

使用
从可执行项目运行程序 Profiling Tools|Profile Code Coverage
工作正常,结果显示在gcov选项卡中,覆盖信息(Coverage %)来自可执行项目中的所有源代码文件以及静态库项目。
检查可执行项目中的源文件时,颜色突出显示工作正常,但对于驻留在静态库项目中的源文件完全没有 - 即根本没有突出显示! 我已尝试过Linux和Windows:相同的行为
在以前版本的eclipse-cpp中,如Juno(4.2)和Kepler(4.3),突出显示适用于静态库中的源文件。

任何线索?

4 个答案:

答案 0 :(得分:1)

对此有一个日食错误https://bugs.eclipse.org/bugs/show_bug.cgi?id=439260。我在MarsNeon中也看到了这个问题。

如果有帮助,我尝试使用lcovgenhtml作为eclipse可视化的替代方法。

答案 1 :(得分:0)

也许这会有所帮助: 如果源代码通过链接文件夹包含在项目中(但实际上位于procjet的根目录之外),使用gcov的代码覆盖不会突出显示任何代码,尽管覆盖信息是正确的。

在切换到Luna SR1时,也许您已经完成了与库代码相同或类似的事情,因为之前的eclipse版本(据我所知)不支持那种相关文件夹链接..?

答案 2 :(得分:0)

我尝试使用Link中的lcovgenhtml(在cygwin环境下)

该过程生成一个名为ex_test.info的文件。

user3567678所述,如果文件位于非项目路径中,则代码覆盖将失败。

但是,编辑ex_test.info时,我已经看到“冲突”文件是由这样的路径确定的。

SF:/cygdrive/e/.../project_folder/E:/..../other_path/conflicting_file.c

所以我重命名为:

SF:/cygdrive/e/..../other_path/conflicting_file.c

并再次尝试了genhtml。并且该过程生成没有问题的html摘要。

因此,我认为eclipse集成的代码覆盖率工具不是问题,而是其下的工具。

答案 3 :(得分:0)

我通过将可执行文件复制到 .a 文件旁边的静态库项目输出文件夹(例如调试 - 我正在使用托管构建)来使其工作。现在双击静态库中源文件的 .gcda 文件,然后选择复制的二进制文件,选择所有覆盖范围,瞧,gcov 突出显示现在显示在编辑器中。