lcov在geninfo初始化时失败

时间:2013-10-24 03:28:24

标签: gcc code-coverage gcov lcov

我正在尝试在以下源目录中生成lcov(版本:1.9)数据:

src/
   foo.o
   foo.gcno
   test/inc
         foo.h
   test/src
         foo.cc

注意:src /目录确实包含我需要的.gcno文件,但是当我运行lcov命令时,从geninfo初始化期间发生错误:

$LCOV --initial --directory . --base-directory . --gcov-tool $GCOV -c -output-file $initCovFile
geninfo: ERROR: no .bb files found in .!

我已经读过--initial应该检测文件类型.bb,.bbg或.gcno,但上面的错误似乎阻止了进一步的执行。接下来我尝试抑制错误,以便我可以使用--ignore-errors选项获得一些输出,如下所示:

geninfo -i . --ignore-errors no .bb files found in . --ignore-errors cannot read .bb!
geninfo: ERROR: cannot read .bb!

我无法克服上述错误。我不明白为什么geninfo不会忽略这些错误并使用上面目录结构中的.gcno文件。

如何让geninfo / lcov按照我的预期干净地初始化?

1 个答案:

答案 0 :(得分:0)

来自IBM的Peter Oberparleiter:

geninfo: ERROR: no .bb files found in .!

此消息表明$ GCOV指向来自 3.4.0之前的GCC 版本的gcov工具,该版本生成.bb文件而不是.gcno文件。 请使用'gcov --version'检查版本并使用与用于编译程序的GCC版本兼容的gcov工具。

  

geninfo -i。 --ignore-errors中找不到.bb文件。 - 忽略错误   无法阅读   的.bb!   geninfo:错误:无法读取.bb!

geninfo需要'gcov','source'或'graph'之一作为参数--ignore-errors。另见'man geninfo'。但在这种情况下,--ignore-errors将无法帮助获取覆盖数据。

来自我自己:

事实证明,这是我的Linux环境的产物。我们的环境中有多个版本的gcov工具,我的$ PATH env变量指向旧版本。

因此,如果你正在运行这些工具的更新版本(gcov / lcov),你不应该像我一样遇到这个问题。