gcc - -ftest-coverage 是否将检测代码注入输出对象?

问题描述

这可能是一个奇怪的问题,但我只是想知道 -ftest-coverage 选项 alone 是否会以任何方式改变生成的目标文件

manual 只是表示此选项将生成供 gcov 使用的笔记文件。我做了一个快速测试,似乎答案是否定的,至少对于这个输入:

$ cat foo.c
#include <stdio.h>

int main()
{
    printf("hello world");
    return 0;
}
$ gcc -c -ftest-coverage foo.c -o foo-ftest-coverage.o
$ gcc -c foo.c -o foo.o
$ diff foo.o foo-ftest-coverage.o 
$

然而,这显然不是详尽无遗的。假设传递 -ftest-coverage 的唯一副作用是 .gcno 文件是否安全,无论此选项是否存在,gcc 都会生成相同的对象?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)