2015-08-02 2 views
1

Это мой первый раз, когда речь идет о «gcov», поэтому я пытаюсь сделать это шаг за шагом. Я следую Wikipedia страницу, поэтому я создал простой файл Си следующим образом:gcov: 0% ошибка выполнения строки

#include <stdio.h> 

int 
main (void) 
{ 
int i; 

for (i = 1; i < 10; i++) 
{ 
    if (i % 3 == 0) 
    printf ("%d is divisible by 3\n", i); 
    if (i % 11 == 0) 
    printf ("%d is divisible by 11\n", i); 
} 

return 0; 
} 

Затем я скомпилированный файл:

gcc -Wall -fprofile-arcs -ftest-coverage test.c 

Тогда я напечатал:

gcov test.c 

Основываясь на Википедии page, я должен получить что-то вроде:

88.89% of 9 source lines executed in file test.c 
Creating test.c.gcov 

Однако то, что я получаю:

File 'test.c' 
Lines executed:0.00% of 7 
test.c:creating 'test.c.gcov' 

Я не знаю, где проблема. Я работаю над mac 10.10.4. Когда я типа

gcc --version 

я получаю:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx- include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) 
Target: x86_64-apple-darwin14.4.0 
Thread model: posix 

И когда я печатаю

gcov --version 

я получаю:

LLVM (http://llvm.org/): 
LLVM version 3.6.0svn from Apple Clang 6.1.0 (build 602.0.53) 
Optimized build. 
Default target: x86_64-apple-darwin14.4.0 
Host CPU: x86-64 

То, что я хочу на самом деле является инструментом, который след выполнение программы, последовательность выполнения строк на. Я думал, что смогу добиться этого, используя «gcov».

Любые мысли?

ответ

1

Вы должны выполнить a.out перед вызовом gcov.c, как указано на странице Википедии :)

+0

Правильно. Пожалуйста, отредактируйте свой ответ, хотя: должно быть «перед вызовом gcov test.c» – wizurd