首页 > 解决方案 > 使用 GCC 运行的覆盖率不会产生数据

问题描述

我有一个 Fortran 程序,我想用 GNU 覆盖来分析。因此,我使用 GCC 11.2 编译了程序,并使用了以下覆盖选项:

-fprofile-arcs -ftest-coverage

此外,我添加了标志以禁止编译器内联代码:

-fno-inline -fno-inline-small-functions -fno-default-inline

我关闭lto并添加-lcgov到链接器。这个设置对于我证明的示例程序很有效。但是当我尝试将它用于我感兴趣的程序时,它没有生成任何 *.gcno 文件,什么也没有。但是,执行退出良好(0 退出代码)产生正确的结果。

我的问题是,我怎样才能找到问题所在。没有错误消息,我不知道从哪里开始。这是一个相当大的程序,大约 10 MB 的源代码,这会是个问题吗?此外,它在很大程度上取决于MKL外部库是否会成为问题?有一次我不小心混合了编译时和运行时环境,它抱怨版本libgcov.so,所以毕竟有些东西在工作。或者您对覆盖率分析还有其他建议吗?

标签: fortranprofilingcode-coverage

解决方案


推荐阅读