我有一个应用程序,我在linux主机上使用gcc为ARM目标处理器构建。这个生成的arm可执行文件我在ARM开发板上执行。 我想做一些代码覆盖率分析:
谢谢。 -AD。
答案 0 :(得分:2)
AFAIK,gcov通过预处理您的C或C ++源代码来工作。 如果你有纯汇编语言文件,我不认为gcov 看到他们。
如果确实如此,如果它理解如何,我会感到惊讶 安全地在任意目标汇编代码中插入代码, ARM很常见,所以有一个微弱的机会。 检测汇编代码的问题是 测试覆盖探测代码本身可能需要寄存器, 并且没有一种安全的方法可以知道任意一块 汇编程序,a)可用的寄存器,和b) 如果有插入的指令,则会有其他指令 由于额外的空间(例如,相对的硬连线跳跃)而中断 穿过插入的指令)。