手臂-精灵-海湾合作委员会.没有创建.gcda文件,程序太大而无法放入内存



我试图在C++一个简单的hello world程序上进行代码覆盖。目标设备是ARM处理器,因此我使用的是GNU ARM工具链。

arm-elf-gcc -mcpu=arm7tdmi -O2 -g -c main.c -o main.exe 创建一个 .gcno 文件,但无法创建 gcov 需要的 .gcda 文件来找出代码覆盖率。

通常当我运行 g++/gcc -fprofile-arcs -ftest-coverage .cpp时,它首先创建一个 .gcno 文件和一个.exe。运行 a.exe 后,它会生成 .gcda 文件。

在这里,当我尝试运行 main.exe 来生成 .gcda 时,它会抛出一个错误 - 程序太大而无法放入内存中。如何解决此问题?我哪里出错了吗?

谢谢A-J

显然,您必须在目标设备上运行可执行文件。目标设备必须具有文件系统。退出后,可执行文件使用普通的POSIX函数写入覆盖信息-openfcntlwriteclose等。查看 GCC 来源中的gcov-io.c。确保您可以成功地将libgcov.a链接到可执行文件中,确保您在目标设备上具有写入权限等。

最新更新