Salut à tous,
Voilà je me demandais si un tel outil existait pour le c++?
Un "quelque chose" qui permettrait de voir le code qui est réellement testé.
En fait fait comme Clover pour le java.
Merci
Salut à tous,
Voilà je me demandais si un tel outil existait pour le c++?
Un "quelque chose" qui permettrait de voir le code qui est réellement testé.
En fait fait comme Clover pour le java.
Merci
Il n'y a rien pour le C++ à ma connaissance. Des trucs pour GCC, des trucs pour SunWSPro, probablement pour VC aussi.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Au boulot j ai deja utilise BullsEye: http://www.bullseye.com/
Ca marche assez bien. Si je me souviens bien c est base sur un front end g++ qui itnercepte les appels aux compilos pour instrumenter le code.
Les resultats sous formes graphiques sont assez faciles a lire et peuvent etre concatenes...
par contre c est une solution proprietaire payante
Petite precision : je l ai utilise en envirnoment Solaris ou Linux
Dans le tutoriel gcc on parle d un analyseur de couverture de code, ça ne repond pas a ton besoin ?
Bonjour,
J'ai le même besoin, mis à part que je cherche plutôt pour du langage C. En gratuit bien sur...![]()
Il me parait étonnant qu'en 2007, rien n'existe.
Merci
Je suis sous Windows (autant pour moi j'aurais du le préciser).
L'idéal étant quelque chose qui fonctionne avec un IDE (Visual, C++Builder ou CodeBlocks...).
Je n'ai pas vérifié, mais je crois que gcov fait partie de la distribution MinGW. Je me trompe? Je n'ai pas de Windows tout de suite sous la main pour confirmer...Envoyé par Bayard
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Envoyé par mujigka
hé hé ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Microsoft Windows XP [version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\>dir /s gcov.* Le volume dans le lecteur C s'appelle BOOT Le numéro de série du volume est 4C05-16D3 Répertoire de C:\CodeBlocks\bin 24/05/2005 11:17 26 112 gcov.exe 1 fichier(s) 26 112 octets Répertoire de C:\CodeBlocks\man\man1 23/05/2005 22:31 23 683 gcov.1 1 fichier(s) 23 683 octets Répertoire de C:\Dev-Cpp\bin 30/01/2005 00:35 26 112 gcov.exe 1 fichier(s) 26 112 octets
Sauf que ça génère des erreurs :Envoyé par Emmanuel Delahaye
Code x : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 convert.c:51: undefined reference to `__gcov_init' convert.c:27: undefined reference to `__gcov_merge_add' convert2.c:60: undefined reference to `__gcov_init' convert2.c:19: undefined reference to `__gcov_merge_add' erreurs.c:106: undefined reference to `__gcov_init' erreurs.c:109: undefined reference to `__gcov_merge_add' str.c:181: undefined reference to `__gcov_init' str.c:22: undefined reference to `__gcov_merge_add' main.c:339: undefined reference to `__gcov_init' main.c:252: undefined reference to `__gcov_merge_add'![]()
Il faut peut être ajouter une bibliothèque au projet. Au pif :Envoyé par gege2061
libgcov.a ...
hé hé (bis)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Microsoft Windows XP [version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\dev\rieu\server>cd \codeblocks C:\CodeBlocks>dir /s *gcov*.* Le volume dans le lecteur C s'appelle BOOT Le numéro de série du volume est 4C05-16D3 Répertoire de C:\CodeBlocks\bin 24/05/2005 11:17 26 112 gcov.exe 1 fichier(s) 26 112 octets Répertoire de C:\CodeBlocks\lib\gcc\mingw32\3.4.4 23/05/2005 22:31 9 772 libgcov.a 1 fichier(s) 9 772 octets Répertoire de C:\CodeBlocks\man\man1 23/05/2005 22:31 23 683 gcov.1 1 fichier(s) 23 683 octets Total des fichiers listés : 3 fichier(s) 59 567 octets 0 Rép(s) 4 205 621 248 octets libres C:\CodeBlocks>
![]()
ça marche superEnvoyé par Emmanuel Delahaye
![]()
Juste une question... comment s'en servir ?
Est-ce utilisable depuis l'interface homme machine codeblocks ?
Peut être (outils externes), mais il faut commencer par apprendre à l'utiliser en mode ligne de commande, ce que je ne sais pas faire pour le moment.Envoyé par Bayard
Je commencerais par lire ceci :
http://c.developpez.com/tutgcc/c1580.php
Envoyé par Bayard
- Suffit d'ajouter les options -fprofile-arcs et -ftest-coverage à la compilation et -lgcov (sûrement associé à -L puisque la bibliothèque est dans le répertoire de gcc) pour l'édition des liens.
- Une fois compilé, tu exécute ton programme
- Tu obtiens deux nouveaux fichiers par fichier sources (extension gcov et gcda)
- Exécute la commande gcov dans ce répertoire suivie du nom du fichier source à analyser (sans extension)
Bon, ben j'ai enfin pris 5 mn pour essayer: cela fonctionne.
Est-ce que quelqu'un sais comment obtenir un résutat OK(100%)/KO plutôt
que d'avoir à tester "visuellement" toutes les lignes
jusqu'à trouver une lignefunction XXX called 1 returned 100% blocks executed 100%
function XXX called 1 returned 100% blocks executed 2%
depuis, j'ai utilisé gcov et lcov aussi.
Merci pour les réponses.
j'en profite pour vous poser quelques questions sur gcov également ...
J'ai créé un .bat dans lequel j'ai écrit ceci :
Voici ce que j'obtiens à la compilation et après ajout de libgcov.a dans mon projet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 echo script_genGcov.bat sparc-threadx-gcov.exe -fprofile-arcs -ftest-coverage -lgcov C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest.cpp sparc-threadx-gcov.exe C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest pause
Je n'ai la création d'aucun fichier et donc il est impossible de les ouvrir pour les exécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 C:\opt\eclipse>echo script_genGcov.bat script_genGcov.bat C:\opt\eclipse>sparc-threadx-gcov.exe -fprofile-arcs -ftest-coverage -lgcov C:\home\cgarcia\workspace\GericosBlocks\sources\gerico s\blocks\memory\GsbMemoryTest.cpp sparc-threadx-gcov.exe: invalid option -- r Usage: gcov [OPTION]... SOURCEFILE Print code coverage information. -h, --help Print this help, then exit -v, --version Print version number, then exit -a, --all-blocks Show information for every basic block -b, --branch-probabilities Include branch probabilities in output -c, --branch-counts Given counts of branches taken rather than percentages -n, --no-output Do not create an output file -l, --long-file-names Use long output file names for included source files -f, --function-summaries Output summaries for each function -o, --object-directory DIR|FILE Search for object files in DIR or called FILE -p, --preserve-paths Preserve all pathname components -u, --unconditional-branches Show unconditional branch counts too For bug reporting instructions, please see: <URL:http://gcc.gnu.org/bugs.html>. C:\opt\eclipse>sparc-threadx-gcov.exe C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest C:\home\cgarcia\workspace\GericosBlocks\sources\gericos\blocks\memory\GsbMemoryTest.gcno:cannot open graph file C:\opt\eclipse>pause Appuyez sur une touche pour continuer...
De plus, j'ai l'erreur 'invalid option -- r' que je comprends pas.
J'ai pourtant suivi les phases d'utilisation, il me semble.
J'ai du oublier quelque chose ou avoir mal compris.
Merci d'avance pour votre aide.
Partager