LCOV报道:'geninfo:负长度'

 月光魔术师2702935955 发布于 2023-01-30 19:29

我正在两个系统(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命令.

1 个回答
  • 如果某个块(之前已捕获覆盖信息的块)不再存在于目标文件中,则会发生这种情况.问题是.gcno文件仍将存储此类块的coverage信息.

    要解决此问题,只需删除.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"项目就足够了.

    2023-01-30 19:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有