cmap Bonnes pratiques de développement et débogage de programme en langage C et
cmap Bonnes pratiques de développement et débogage de programme en langage C et Fortran Sylvain Ferrand CMAP Octobre 2007 Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 1 / 40 cmap Les bonnes pratiques Table des matières 1 Les bonnes pratiques 2 Débuggeur Présentation GDB DDD Valgrind Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 2 / 40 cmap Les bonnes pratiques Remarques générales Le temps de débogage d’un programme peut représenter jusqu’à 80% du temps de developpement →Mieux vaut connaitre quelque astuces pour les éviter et savoir les traquer! Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 3 / 40 cmap Les bonnes pratiques Les bonnes pratiques Utilisez des conventions de nommage pour les variables, les constantes et les fonctions Constantes et variables globales en MAJUSCULE Eviter les noms trop proches les uns des autres Utiliser des noms courts et explicites Pour une variable de stockage : que contient-elle ? Pour un tableau : que contient une case ? ... Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 4 / 40 cmap Les bonnes pratiques Les bonnes pratiques Utilisez des conventions de nommage pour les variables, les constantes et les fonctions Constantes et variables globales en MAJUSCULE Eviter les noms trop proches les uns des autres Utiliser des noms courts et explicites Pour une variable de stockage : que contient-elle ? Pour un tableau : que contient une case ? ... Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 4 / 40 cmap Les bonnes pratiques Les bonnes pratiques Utilisez des conventions de nommage pour les variables, les constantes et les fonctions Constantes et variables globales en MAJUSCULE Eviter les noms trop proches les uns des autres Utiliser des noms courts et explicites Pour une variable de stockage : que contient-elle ? Pour un tableau : que contient une case ? ... Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 4 / 40 cmap Les bonnes pratiques Les bonnes pratiques Utilisez des conventions de nommage pour les variables, les constantes et les fonctions Constantes et variables globales en MAJUSCULE Eviter les noms trop proches les uns des autres Utiliser des noms courts et explicites Pour une variable de stockage : que contient-elle ? Pour un tableau : que contient une case ? ... Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 4 / 40 cmap Les bonnes pratiques Le ’coding style’ Pensez à bien indenter votre code Voici un exemple, en style Kernighan et Ritchie void truc() { if (x > y) { faire_un_truc(); } fin(); } Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 5 / 40 cmap Les bonnes pratiques Le ’coding style’ (suite) Commentez raisonnablement et lisiblement, Bien décrire les arguments des fonctions Prévoir l’exploitation par un outil de documentation automatique (ex: ROBOdoc) Eviter d’indiquer le fonctionnemement du code dans les commentaire. Eviter de paraphraser le code Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 6 / 40 cmap Les bonnes pratiques Le ’coding style’ (suite) Commentez raisonnablement et lisiblement, Bien décrire les arguments des fonctions Prévoir l’exploitation par un outil de documentation automatique (ex: ROBOdoc) Eviter d’indiquer le fonctionnemement du code dans les commentaire. Eviter de paraphraser le code Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 6 / 40 cmap Les bonnes pratiques Le ’coding style’ (suite) Commentez raisonnablement et lisiblement, Bien décrire les arguments des fonctions Prévoir l’exploitation par un outil de documentation automatique (ex: ROBOdoc) Eviter d’indiquer le fonctionnemement du code dans les commentaire. Eviter de paraphraser le code Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 6 / 40 cmap Les bonnes pratiques Le ’coding style’ (suite) Commentez raisonnablement et lisiblement, Bien décrire les arguments des fonctions Prévoir l’exploitation par un outil de documentation automatique (ex: ROBOdoc) Eviter d’indiquer le fonctionnemement du code dans les commentaire. Eviter de paraphraser le code Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 6 / 40 cmap Les bonnes pratiques Le ’coding style’ (suite) Commentez raisonnablement et lisiblement, Bien décrire les arguments des fonctions Prévoir l’exploitation par un outil de documentation automatique (ex: ROBOdoc) Eviter d’indiquer le fonctionnemement du code dans les commentaire. Eviter de paraphraser le code Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 6 / 40 cmap Les bonnes pratiques Des bugs classiques Les débordements de tableau Les problèmes d’initialisation (généralement signalés par le compilateur) Les problèmes liés aux conversions implicites dans les expressions mathématiques Les typos : Commentaires mal fermés : a=b ; /∗ t h i s i s a bug c=d ; /∗c=d w i l l never happen ∗/ Confusions entre test et assignation en C i f ( a=b ) c ; /∗a always equals b ∗/ Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 7 / 40 cmap Les bonnes pratiques Des bugs classiques Les débordements de tableau Les problèmes d’initialisation (généralement signalés par le compilateur) Les problèmes liés aux conversions implicites dans les expressions mathématiques Les typos : Commentaires mal fermés : a=b ; /∗ t h i s i s a bug c=d ; /∗c=d w i l l never happen ∗/ Confusions entre test et assignation en C i f ( a=b ) c ; /∗a always equals b ∗/ Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 7 / 40 cmap Les bonnes pratiques Des bugs classiques Les débordements de tableau Les problèmes d’initialisation (généralement signalés par le compilateur) Les problèmes liés aux conversions implicites dans les expressions mathématiques Les typos : Commentaires mal fermés : a=b ; /∗ t h i s i s a bug c=d ; /∗c=d w i l l never happen ∗/ Confusions entre test et assignation en C i f ( a=b ) c ; /∗a always equals b ∗/ Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 7 / 40 cmap Les bonnes pratiques Des bugs classiques Les débordements de tableau Les problèmes d’initialisation (généralement signalés par le compilateur) Les problèmes liés aux conversions implicites dans les expressions mathématiques Les typos : Commentaires mal fermés : a=b ; /∗ t h i s i s a bug c=d ; /∗c=d w i l l never happen ∗/ Confusions entre test et assignation en C i f ( a=b ) c ; /∗a always equals b ∗/ Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 7 / 40 cmap Les bonnes pratiques Eviter les structures obsolètes du Fortran Banir le typage implicite, utilisez implicite none Eviter les instructions do label...continue et préférer les boucles F90 (mais universelles): do...enddo et dowhile...enddo Eviter les if logiques et toute les structures utilisant des étiquettes. Utilisez la structure if...then...endif Oublier les instructions archaïques goto, continue, entry, equivalence Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 8 / 40 cmap Les bonnes pratiques Eviter les structures obsolètes du Fortran Banir le typage implicite, utilisez implicite none Eviter les instructions do label...continue et préférer les boucles F90 (mais universelles): do...enddo et dowhile...enddo Eviter les if logiques et toute les structures utilisant des étiquettes. Utilisez la structure if...then...endif Oublier les instructions archaïques goto, continue, entry, equivalence Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 8 / 40 cmap Les bonnes pratiques Eviter les structures obsolètes du Fortran Banir le typage implicite, utilisez implicite none Eviter les instructions do label...continue et préférer les boucles F90 (mais universelles): do...enddo et dowhile...enddo Eviter les if logiques et toute les structures utilisant des étiquettes. Utilisez la structure if...then...endif Oublier les instructions archaïques goto, continue, entry, equivalence Sylvain Ferrand (CMAP) Bonnes pratiques de développement et débogage de programme en langage C et For Octobre 2007 8 / 40 cmap Les bonnes pratiques Eviter les structures obsolètes du Fortran Banir le typage implicite, utilisez implicite none Eviter les instructions do label...continue et préférer les boucles F90 (mais universelles): do...enddo et dowhile...enddo Eviter les if logiques et toute les structures utilisant des étiquettes. Utilisez la structure if...then...endif Oublier les instructions archaïques goto, continue, entry, equivalence Sylvain Ferrand (CMAP) Bonnes pratiques uploads/Marketing/ cours-debug.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/OxDtMCXABxU6YVQinHAMZRgXUN3zPfXqIjj9l70JlCJAwKKftXqobl6sxAkR5CeySALDRRZTvvU49FXEdZknKDZR.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/d6NicFCiqSAJlVJmBUxy3eKPDwr0beyvvq7oLuafcv3Bb6PUcYx5ho2UOenagHAUrm27envPoiQQracK368FePMP.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/B1X2XheWS75rfTipRUn0002p2hEhKV8NRSDlFqaRiGQylI8OanHUWIsFMqy5qrdojqjnDCqEX9VkyWrwroU57P1C.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/6tQcVCVWFvB91fVFiXPqTcrAHTdvQFMoPkKXkuKlQwyGhPyvYcRtJDm3yx04B0po1I23SWNrmpWV4dz4HrjHj9rS.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/dJtpDVhnUzUUKx6jjowD5I8HShzEtAHbQlIOWEwnlunZk4jv43aAzcF91lGjvqp0UvNSUcoRqeSXuZ6U9yH1dquM.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/IX8u8FvbtFWy3zadbYPfhr9DBlTIeG5xd7N36x3XFutaLBZecJDuS70FcciDTeDuw30RceeLVVNbM7qlpAGK4Q0v.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/IZjcVS6NSNCu9wspMDr2YcXHA1jn7ixxYvC4NEkq0P4dQJAi3X2hViRim3f5vWXcG31ARHUoAwHKCAAt1nGU4JFU.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/247dv0yiUl9yXMYk5TJufmmxVsZuF37CFHss4wjmGpzbZTOmdx3rzxhhYROgN20nJ2I19ZiI58NtnMtBdzVw6vE7.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/N0WeHADaveljovEfHL5LQPu8MiG1vT758btKGXziAq5tp12tLDmWemfcE3ESmLPQ9p7ijJcP4dJQqLJBzd9YcZ1N.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/JCiABtJL4EjKocpEFqMSRDMrzmeaTR35sNLyLqU4ZmePg01YvGU5kAAz0zF1hIDydpZl8B8ZJ1P1h2MtzGLT6iD6.png)
-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 15, 2022
- Catégorie Marketing
- Langue French
- Taille du fichier 0.5966MB