2

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

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

谢谢你。-广告。

4

1 回答 1

2

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

如果是这样,如果它了解如何在任意目标汇编代码中安全地插入代码,我会感到惊讶,因为 ARM 足够普遍,所以机会微乎其微。检测汇编代码的问题是测试覆盖率探测代码本身可能需要寄存器,并且没有一种安全的方法可以知道,对于任意一段汇编程序,a)哪些寄存器可用,以及 b)是否有插入的指令, 其他指令是否会因为额外的空间而中断(例如,相对于插入指令的硬接线跳转)。

于 2009-09-07T04:20:41.257 回答