1

设置:工具链:gcc-arm-none-eabi-5_2-2015q4-20151219 目标:STM429i-disco board

我想按照以下链接运行 gcov 并在目标中生成实时报告: https ://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-冠状病毒/

首先,使用 -fprofile-arcs 和 -ftest-coverage 标志成功编译了我的代码(符合 POSIX 的 NUTTX OS),并为我的 src 文件生成了 .gcno 文件。

其次,已成功链接启用 -fprofile-arcs 标志并使用 libgcov.a 文件(工具链的一部分)并生成最终二进制文件。

现在,我不知道我的测试应用程序需要进行哪些更改才能调用 gcov、生成报告和转储报告。

另一个问题是,gcov 函数在 libgcov.a 中具有 HIDDEN 属性,如下所示。
9:00000000 4 功能全局隐藏 1 __gcov_flush
9:00000000 4 功能全局隐藏 1 __gcov_init

所以,我无法根据需要调用。

生成 .gcda 文件的任何输入都会有很大帮助。

4

1 回答 1

1

你能gcov_exit代替吗?它类似于__gcov_flush。通常,它是其中之一,gcov_exit并且__gcov_flush会在那里,您可以使用任何一个。

如果这不存在或也被隐藏,您可以使用我为我的一个项目尝试过的这种方法。gcov_exit我从 gcc 源代码(与我的工具链匹配的版本)(可在https://github.com/reeteshranjan/libgcov-embedded获得)选择(并出于各种原因进行了修改)并将其插入到我的项目中。在其他所有内容保持不变(编译器标志等)的情况下,我能够进入gcov_exit并遵循您提到的博客链接中的其余方法。

于 2016-11-14T22:36:23.173 回答