我想在嵌入式目标上对 C++ 源代码进行代码覆盖。 基本思想是,生成一个 elf 以及使用 gcc 打开的 -frofile-arcs -ftest-coverage。 将其下载到 ARM 设备上,然后收集数据以使用 gcov 分析代码覆盖率。
如何使用 arm-none-eabi-gcc 命令生成 elf 文件。 我已经设置了 GNU ARM 工具链并设置了环境变量。 我可以使用 arm-none-eabi-g++ -c -mthumb -mcpu=cortex-m3 -fprofile-arcs -ftest-coverage filename.cpp -o filename.elf 吗?
提前致谢!
最佳答案
不,您需要做更多的事情。您需要与 gcov 库链接。这可以通过 -lgov 和 -fprofile-arcs 链接器标志来实现,希望您的链接器脚本具有 .got 和 .plt 部分。
以上只会生成 .gcno 文件。 .gcda 文件在运行时在硬件内部生成。等待应用程序退出或添加您自己的包装器以创建 .gcda 文件。
最后,您需要找到一种方法从您的硬件中提取此 .gcda 文件。
所有abvoe都在
中得到了很好的解释
https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/
关于gcc - 使用 arm-none-eabi-gcc 从 cpp 生成 elf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461084/