手臂精灵-GCC。没有.gcda文件创建,程序太大,不适合内存?

时间:2012-11-16 18:43:46

标签: gcc arm code-coverage gnu elf

我试图用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时,它会抛出一个错误 - 程序太大而无法适应内存。 我该如何解决这个问题? 我错了吗?

谢谢, 甲-J

1 个答案:

答案 0 :(得分:0)

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