gpt4 book ai didi

unit-testing - 如何在交叉编译器中使用 gcov?

转载 作者:行者123 更新时间:2023-11-28 20:55:07 29 4
gpt4 key购买 nike

我需要在 gcov 工具的帮助下对基于 arm 的板中的驱动程序进行单元测试。当 gcov 在 x86 架构中使用时,它会在执行程序后创建 .gcda 文件。但是当涉及到基于 arm 的板时board.gcda 文件没有被创建。所以,没有它我不能使用 gcov 工具。我的问题是如何在交叉编译中使用那个 gcov 工具。?提前致谢。

最佳答案

gcov 代码/数据结构绑定(bind)到主机文件系统,交叉编译器工具链没有任何端口或配置来更改此行为。如果您的目标文件是 ~/my-project/abc.o,则由检测代码创建/更新的 gcov 内存数据结构指向 ~/my-project/abc.gcda,所有这些路径都在您的主机上。如您所见,在远程系统(在您的情况下是 ARM 板)上运行的检测代码无法访问这些路径,这是您看不到 .gcda 文件的主要原因ARM板壳。

有关获取 .gcda 文件以解决上述问题的一般方法,请参阅 https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/ .本文介绍了一种破解 gcov 函数并将 gcov 数据结构手动转储到主机上的 .gcda 文件中的 hacky 方法。

我使用上面提到的博客为我的 ARM 项目做代码覆盖。然而;我在我的工具链版本(2016 年 10 月/11 月可用的 GNU arm 工具链版本)中遇到了另一个 gcc 错误问题,您将无法进入 gcov 函数并完成上述博客中提到的过程,因为相关的 gcov 函数因无限循环而挂起。您可能会也可能不会遇到此问题,因为我不确定该错误是否已修复。如果您遇到此问题,我的博客中提供了解决方案 https://technfoblog.wordpress.com/2016/11/05/code-coverage-using-eclipse-gnu-arm-toolchain-and-gcov-for-embedded-systems/ .

关于unit-testing - 如何在交叉编译器中使用 gcov?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27162821/

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