gpt4 book ai didi

c - 在检测图像上运行功能测试用例时,不会生成 gcda 文件

转载 作者:行者123 更新时间:2023-11-30 16:21:55 24 4
gpt4 key购买 nike

我正在尝试生成 C 文件的覆盖范围(Yocto 项目)。

因此,我在大多数可用模块的 Makefile.am 中添加了 gcov 标志“-g -O0 --coverage”

它在编译每个带有覆盖标志的模块期间生成了“.gcno”文件。

我已经从所有这些模块生成了一个图像,并将其加载到测试设备中并运行了功能测试用例。

我可以使用运行测试设备的进程中的 strings 命令找到“gcda”文件的路径。

因此,在将进程 ID 附加到 gdb 后,我使用 gdb 模式使用“__gcov_flush”命令刷新覆盖率。

这会引发错误“当前上下文中没有符号 __gcov_flush”。请建议我可能是什么原因导致此错误。

最佳答案

根据评论,不可能直接使用覆盖编译器标志构建 Linux 内核并假设获得有意义的覆盖指标。

代码覆盖率指标实际上需要一些文件系统可用于写入运行时覆盖率数据(即 *.gcda 文件)。

如果您想启用 Linux 内核的代码覆盖 here是有关如何使用 GCOV 虚拟文件系统来启用支持来收集覆盖率指标的文档。

此外,假设您正在针对不同的架构进行交叉编译,那么在执行后捕获 *.gcno 文件后,您可能必须使用跨 gcov 工具来收集覆盖率指标。

关于c - 在检测图像上运行功能测试用例时,不会生成 gcda 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54665218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com