gpt4 book ai didi

code-coverage - LCOV 报告 : 'geninfo: Negative length'

转载 作者:行者123 更新时间:2023-12-04 05:49:16 26 4
gpt4 key购买 nike

我正在两个系统(Windows 7、cygwin、Lcov 1.10)上使用 LCOV 分析 C 代码。在一个系统上我从来没有遇到过问题,但在另一个系统上我得到了相同的代码:

$ lcov --directory CMakeFiles/UnitTest.dir/main --capture --output-file lcov.log
Capturing coverage data from CMakeFiles/UnitTest.dir/main
Found gcov version: 4.8.2
Scanning CMakeFiles/UnitTest.dir/main for .gcda files ...
Found 59 data files in CMakeFiles/UnitTest.dir/main
Processing analyze/analyze.c.gcda
[..]
Processing measure/measur.c.gcda
geninfo: Negative length at /usr/bin/geninfo line 2413.

在两个系统上,文件夹和文件是相同的(通过 subversion 版本控制)。我想也许某些路径可能存在问题。有人知道这是怎么回事吗?谢谢,带领

附录:我发现有时它有助于完全清理项目(删除所有 CMakeFiles 和 CMakeCache)并重新运行 lcov 命令。

最佳答案

如果之前捕获覆盖率信息的某个 block 不再存在于目标文件中,似乎会发生这种情况。问题是 .gcno 文件仍将存储此类 block 的覆盖率信息。

要解决此问题,只需删除 .gcno 文件并重建单元测试即可。

比如我遇到过这样的错误:

[...]
Processing CMakeFiles/UnitTest.dir/main.cpp.gcda
[...]
Processing CMakeFiles/UnitTest.dir/Math/BoundingBox.cpp.gcda
geninfo: Negative length at /usr/bin/geninfo line 2413.
Processing CMakeFiles/UnitTest.dir/Math/Vectors.cpp.gcda
make[3]: *** [source/CMakeFiles/] Error 255

在这种情况下,删除“CMakeFiles/UnitTest.dir/Math/Vectors.cpp.gcno”文件然后重建“UnitTest”项目就足够了。

关于code-coverage - LCOV 报告 : 'geninfo: Negative length' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21405787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com