GCC 12 GCOV 使用 __gcov_dump() 不会创建 .gcda 文件?

问题描述 投票:0回答:1

当我使用GCC v10(arm_none_eabi)时,测试覆盖率是可以的。但是当我更新到 GCC 12 时,使用

__gcc_dump() + __gcov_reset()
而不是
__gcov_flush
。我遇到问题:
in function 
_sub_D_00100_1':...对
__gcov_exit'
的未定义引用。我尝试了很多解决方案,但它没有创建 .gcda 文件。

参考教程:https://gcc.gnu.org/onlinedocs/gcc/Freestand-Environments.html

gcc gcov
1个回答
0
投票

尝试添加您自己的 __gcov_exit() 实现。您可以在其中使用自己的退出代码,例如使用 __gcov_dump() 转储文件。 请注意,ARM GNU 工具链的最新发行版似乎包含带有空钩子/实现的 gcov 库,因此根本不写入数据文件。我正在使用 XPack arm-none-eabi-gcc-12.2.1-1.2,其中包含完整的 gcov 库。

© www.soinside.com 2019 - 2024. All rights reserved.