覆盖率:构建捕获百分比为 0%,这是不合需要的

标签 c static-code-analysis coverity

我使用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

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

the build capture percentage is undesirably 0%

error

然后我仍然分析数据:

分析命令:

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

我得到了错误:

Error: intermediate directory contains no translation units.

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

请帮我解决这个问题。

最佳答案

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

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

关于覆盖率:构建捕获百分比为 0%,这是不合需要的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42374323/

相关文章:

c++ - 在不使用 extern "C"的情况下从 C 调用 C++ 函数

c - 在内联 x86 程序集中是否未定义整数溢出?

c - 何时将\0添加到数组中

python - 混合 datetime.strptime() 参数

angular - Coverity是否支持Angular2及以上版本?

c++ - 用于 Objective C 的 IDE

c# - 代码分析规则异常情况

java - 多模块项目中,sonar分析绑定(bind)maven生命周期,如何让SonarQube模块只分析一次项目?

java - JAVA 污染源

c - 用于静态代码分析的稀疏和覆盖工具有何不同?