gcov 问题,无法运行

gcov 问题,无法运行

因此,我正在尝试优化一个名为的文件linpack.c。我必须使用它gcov来查找执行次数最多的 10 行。我已获得以下编译器选项:

-fprofile-arcs -ftest-coverage -O2

所以我运行了这个

$ gcc -fprofile-arcs -ftest-coverage -O2 linpack.c

输出是linpack, linpack.gcno

现在,当我尝试运行gcov linpack.c以生成时linpack.c.gcov,出现错误:

linpack.gcda, cannot open data file.

有人能告诉我我做错了什么吗?这应该很简单,但我已经挣扎了一个多小时了。

答案1

linpack.gcda当您执行使用配置文件标志编译的程序时,应该会创建该文件。由于您没有-o在 gcc 命令行上提供输出文件名(使用选项),因此您需要将其作为执行a.out。例如:

$ gcc -fprofile-arcs -ftest-coverage -O2 hello.c
$ ls hello.*
hello.c  hello.gcno
$ 
$ ./a.out 
Hello world!
$ ls hello.*
hello.c  hello.gcda  hello.gcno
$ 

相关内容