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

发布于 2024-08-03 10:28:12 字数 222 浏览 9 评论 0原文

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

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

谢谢。 -广告。

I have an application which i build using gcc on linux host for ARM target processor. This generated arm executable i execute on a ARM development board i have.
I want to do some code coverage analysis:

  1. Will gcov show code coverage if i have ARM assembly source files in my build environment?
  2. If my build environment has some X86 assembly source files, then will gcov show code coverage data?

Thank you.
-AD.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ま柒月 2024-08-10 10:28:12

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

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

AFAIK, gcov works by preprocessing your C or C++ source code.
If you have pure assembly language files, I don't think gcov ever
sees them.

If it does, I'd be suprised if it understand how
to safely insert code in arbitrary-target assembly code,
with ARM being common enough so there's a faint chance.
The problem with instrumentating assembly code is the
test coverage probe code itself may require registers,
and there isn't a safe way to know, for an arbitrary piece
of assemblers, a) what registers are available, and b)
if there's an inserted instruction, will some other instruction
break because of the extra space (e.g., a hardwired jump relative
across the inserted instruction).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文