Problem with Gcov, Cannot Run

Problem with Gcov, Cannot Run

So i'm trying to optimize a file called linpack.c. I have to use gcov to find the 10 most executed lines. I've been given these compiler options:

-fprofile-arcs -ftest-coverage -O2

So i ran this

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

the output was linpack, linpack.gcno.

Now when I try to run gcov linpack.c in order to generate linpack.c.gcov I get an error:

linpack.gcda, cannot open data file.

Can someone tell me what I'm doing wrong? This should be straightforward but I have been struggling for more than an hour now.

1 Answer

The linpack.gcda file should get created when you execute the program that you compiled with the profile flags. Since you didn't supply an output file name (using the -o option) on the gcc command line, you will need to execute it as a.out. For example:

$ 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
$ 

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Sarah Jenkins
Author

Sarah Jenkins

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.