gcov是否为汇编语言代码提供代码覆盖率分析

时间:2009-09-02 12:39:52

标签: code-coverage gcov

我有一个应用程序,我在linux主机上使用gcc为ARM目标处理器构建。这个生成的arm可执行文件我在ARM开发板上执行。 我想做一些代码覆盖率分析:

  1. 如果我的构建环境中有ARM汇编源文件,gcov会显示代码覆盖吗?
  2. 如果我的构建环境有一些X86程序集源文件,那么gcov会显示代码覆盖率数据吗?
  3. 谢谢。 -AD。

1 个答案:

答案 0 :(得分:2)

AFAIK,gcov通过预处理您的C或C ++源代码来工作。 如果你有纯汇编语言文件,我不认为gcov 看到他们。

如果确实如此,如果它理解如何,我会感到惊讶 安全地在任意目标汇编代码中插入代码, ARM很常见,所以有一个微弱的机会。 检测汇编代码的问题是 测试覆盖探测代码本身可能需要寄存器, 并且没有一种安全的方法可以知道任意一块 汇编程序,a)可用的寄存器,和b) 如果有插入的指令,则会有其他指令 由于额外的空间(例如,相对的硬连线跳跃)而中断 穿过插入的指令)。