设置:工具链: gcc-arm-none-eabi-5_2-2015q4-20151219目标: STM429i-disco板
我想运行gcov并获得在目标中生成的实时报告,如下面的链接:https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/
首先,成功地使用-fprofile-arcs和-ftest-coverage标志编译了我的代码(符合POSIX的NUTTX OS),并为我的源文件生成了.gcno文件。
其次,成功地使用libgcov.a文件(工具链的一部分)启用了带有-fprofile-arcs标志的链接,并生成了最终的二进制文件。
现在,我不知道需要在我的测试应用程序中进行哪些更改才能调用gcov、生成报告和转储报告。
另一个问题是,gcov函数在libgcov.a中具有隐藏属性,如下所示。
9: 00000000 4 FUNC全局隐藏1 __gcov_flush
9: 00000000 4 FUNC全局隐藏1 __gcov_init
所以,我不能按我需要的方式调用。
生成.gcda文件时的任何输入都会很有帮助。
发布于 2016-11-15 06:36:23
你能改为寻找gcov_exit吗?它类似于__gcov_flush。通常,它是gcov_exit和__gcov_flush中的一个,您可以使用任何。
如果它不在那里或者也被隐藏了,你可以使用我在我的一个项目中尝试过的这种方法。我从gcc的源代码(与我的工具链相匹配的版本)(在https://github.com/reeteshranjan/libgcov-embedded上可以找到)中挑选(由于各种原因而修改) gcov_exit的实现,并将其插入到我的项目中。在其他一切都保持不变(编译器标志等)的情况下,我能够进入gcov_exit并遵循您提到的博客链接中的其余方法。
https://stackoverflow.com/questions/37876030
复制相似问题