首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在STM发现板上使用Nuttx操作系统的测试应用程序上运行gcov?

如何在STM发现板上使用Nuttx操作系统的测试应用程序上运行gcov?
EN

Stack Overflow用户
提问于 2016-06-17 15:51:30
回答 1查看 371关注 0票数 1

设置:工具链: 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文件时的任何输入都会很有帮助。

EN

回答 1

Stack Overflow用户

发布于 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并遵循您提到的博客链接中的其余方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37876030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档