【问题标题】:Coverity: the build capture percentage is undesirably 0%覆盖率:构建捕获百分比不理想地为 0%
【发布时间】:2017-02-21 17:43:45
【问题描述】:

我使用 Coverity 分析代码 C。

配置命令:

cov-configure --compiler /opt/toolchains/stbgcc-4.5.4-2.9/bin/mipsel-linux-uclibc-gcc --comptype gcc --config /opt/cov-analysis-linux64-7.5.1 /config/coverity_config.xml

配置步骤成功。

构建命令:

cov-build --dir ../platform/drivers --record-only --encoding EUC-KR sudo make platform FORCE=1

当覆盖构建完成后, 我在构建日志中看到:cov-build 实用程序成功完成。 以及弹出块中的警告:

构建捕获百分比不理想地为 0%

那我还是分析数据:

分析命令:

cov-analyze --user-model-file >~/work/CoverityData/stdioUserModel.xmldb --parse-warnings-config >~/work/CoverityData/parse_warnings.conf --dir ../platform/drivers/ >--all --checker-option NO_EFFECT:extra_comma:0 -j 4

我得到了错误:

错误:中间目录不包含翻译单元。

我猜构建步骤中的警告导致分析步骤中的错误。

请帮我解决这个问题。

【问题讨论】:

  • 通过联系 support@coverity.com?顺便说一句,您的代码是 C java吗?没有任何代码或背景信息,你怎么指望有人为你挥动魔杖?
  • 检查构建日志是找出原因的一个很好的开始。你的构建真的做了什么吗?您的编译器配置正确吗?

标签: c static-code-analysis coverity


【解决方案1】:

问题可能与您的cov-build 调用的--record-only 部分有关——它捕获编译器调用,但实际上并没有发出它们。尝试删除它,然后重试。或者,您可以使用cov-build --replay -j X 重播这些编译;有一些注意事项,通常最好直接捕获编译。

请注意,在您的构建命令中使用sudo 非常危险,应该避免。真的有必要吗?

【讨论】:

  • 嗨,迦勒。很抱歉浪费您的时间。你的权利。我在复制/粘贴构建命令时犯了一个错误。我修复了上述问题的构建命令。请查看并给我任何想法。
  • 我已经更新了我的答案,但这是一个有根据的猜测 - 我需要构建日志才能确定这是否是问题所在。
【解决方案2】:

您应该检查位于 ../platform/drivers/ 中的 build_log 文件。 查找包含 [ERROR] 的行 - 定位头文件等可能存在错误。

另一种可能性是首先执行测试构建 - 这可能只能从 IDE 中实现 - 以确保正确调用构建

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2020-07-13
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多