c macos gcov

gcov: no se puede abrir el archivo gráfico



macos (5)

¿Está seguro de que está ejecutando el comando desde el mismo directorio que el archivo de origen? Debe estar en el mismo directorio, a menos que especifique el distintivo -o. Tratar:

gcov -o a.c

Estoy tratando de usar gcov. Tengo este simple archivo ac:

int main() { return 0; }

Así que hago

gcc -fprofile-arcs -ftest-coverage a.c -o a ./a gcov a.c

y me pongo

a.gcno:cannot open graph file

¿Estoy haciendo algo mal? Estoy bajo Mac OS X Lion.


A menudo esto sucede cuando la versión de gcov que está ejecutando no coincide con la versión de GCC utilizada para compilar la aplicación. En algunos sistemas, los administradores de paquetes tienen prácticas extrañas en la forma en que vinculan GCC y gcov . Por ejemplo, en muchos sistemas, gfortran es el mismo que gfortran-5 pero gcov podría ser algo viejo y crujiente.


Intenta usar clang lugar de gcc . Tuve el mismo problema , y usar clang me lo arregló.


Por defecto en Lion, "gcc" no es gcc. Es LLVM. Y no admite la generación de datos de cobertura de prueba.

Si ejecuta gcc-4.2 -fprofile-arcs -ftest-coverage ac -oa en gcc-4.2 -fprofile-arcs -ftest-coverage ac -oa lugar, utilizará un gcc real, y probablemente funcionará.


Utilicé lo siguiente en Mac 10.8.4 :

  • Instalado vía xcode las herramientas de la línea de comando:
  • escribió este código de ejemplo desde el sitio web de gcc:

    #include <stdio.h> main() { int i, total; total = 0; for (i = 0; i < 10; i++) total += i; if (total != 45) printf ("Failure/n"); else printf ("Success/n"); }

  • Compilación utilizando el GCC real gcc-mp-4.7 -fprofile-arcs -ftest-coverage tmp.c

  • Y al usar gcov: gcov-mp-4.7 -b tmp.c , obtendrás esta salida:

    File ''tmp.c'' Lines executed:87.50% of 8 Branches executed:100.00% of 4 Taken at least once:75.00% of 4 Calls executed:50.00% of 2 Creating ''tmp.c.gcov''