Question

Je suis en train de refactoriser un projet C, en me lançant environ 1 000 avertissements. Est-il possible de mettre en évidence et de filtrer ces avertissements? (par exemple, rendre tous les avertissements d’index rouges, bleus inutilisés et autres)

Très probablement, certains ides peuvent le faire, mais ce n'est pas une solution pour moi.

Était-ce utile?

La solution

Autres conseils

Ceci est vraiment basique, mais j'utilise grep ...

make 2>&1 | grep --color -iP "\^|warning:|error:|"

juste pour attirer rapidement l’œil sur la ligne d’erreur et la section fautive désignée par ^ .

entrer la description de l'image ici

J'ai trouvé d'autres méthodes qui sur-utilisent la couleur et vous vous retrouvez avec le même problème. Je suppose que vous pouvez également injecter des séquences d’échappement de couleur avec sed .

Gcc 4.9 semble avoir ajouté cette fonctionnalité via l'indicateur -fdiagnostics-color: http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index-fdiagnostics-color-246

Le script warn_summary est plutôt sympathique

Vous pouvez obtenir un décompte de tous vos avertissements, le type et aussi simplement imprimer les avertissements sans toutes les autres sorties de gcc.

gcc <...> | tee buildoutput
warn_summary -s 0 -wpass buildoutput
warn_summary -s 0 buildoutput

Vous pouvez diriger le résultat de votre compilation via grep:

make 2> error.txt; grep -e error error.txt

Compiler dans emacs vous donne un peu de surbrillance. On peut supposer que les détails peuvent être personnalisés.

Utilisez M-x compiler et lancez votre commande de construction habituelle (par défaut, make -k ).

J'utilise pretty make , qui permet de formater et de colorier correctement la sortie gcc. Le format en retrait pour les options de commande est très clair. J'ai fini par le pirater pour permuter le popen2 obsolète en sous-processus.

Cette réponse concerne davantage l'approche générale utilisée pour retravailler l'ancien code C.

Un grand nombre d'avertissements sont généralement des répétitions du même petit groupe d'avertissements en raison d'erreurs dans les fichiers d'en-tête qui sont incluses partout dans d'autres fichiers de code source.

Si vous refactorisez un ancien projet C, la plupart des avertissements se résument souvent à des choses telles que les anciennes versions des fonctions K'n'R, les distributions précédemment autorisées sont désormais mises en surbrillance avec un avertissement, à l'aide de fonctions obsolètes, etc.

En supposant que vous utilisiez (g) make pour construire le projet, je lancerais la compilation à l'aide de la commande suivante:

gmake 2>&1 | tee results

Ensuite, vous pouvez consulter le fichier de résultats et voir quels sont les avertissements les plus populaires que vous recevez. Commencez par éliminer tous les avertissements existants avant de procéder à tout refactoring de la base de code.

L'exécution de make à partir de vim vous offre de nombreuses possibilités pour associer les messages d'erreur et d'avertissement aux fichiers source.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top