为什么我在 运行 gcov 时收到 "has arcs from exit block" 消息?

Why do I get "has arcs from exit block" messages when running gcov?

我是 运行 gcov 来测量覆盖率,但我在 c 代码中使用的每个函数都收到 "has arcs from exit block" 消息。这条消息有什么问题吗?我应该忽略它们吗?

这可能意味着您的 gcno 文件是使用 newer/different 版本的 gcc 编译器生成的。看看你是否在开始时也有类似'version'404*'的警告,更喜欢'402*'如果是,解决方案如下:

检查 g++ --versiongcov --version 是否给您相同的结果。如果没有,请更新您的工具,例如 sudo apt-get install gcov,或特定版本,例如 `sudo apt-get install gcc-4.7。

如果您有多个版本的 gcc 安装程序,您可以使用 update-alternatives 在它们之间切换:

查询(你有什么)例子:sudo update-alternatives --query gcc.

Add/make 更改示例:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 60

我最近遇到了这个问题,除了@tutejszy 的回答还想补充一点信息

如果您正在交叉编译您的代码(或使用不是默认安装的工具链),您将需要使用这个特定的工具链 gcov。

如果您想在刚刚创建的 gcov 对象上使用 lcov,您需要在 运行 lcov

时使用选项 --gcov-tool <path to gcov> 指定工具链 gcov 的路径