Vue d'ensemble de l'analyse du code C/C++
Mise à jour : novembre 2007
L'outil d'analyse du code C/C++ fournit des informations aux développeurs à propos des erreurs possibles dans leur code source C/C++. Les erreurs de codage courantes signalées pour cet outil sont le dépassement de mémoire tampon, la mémoire désinitialisée, le déréférencement du pointeur null et les fuites de mémoire et de ressources.
Intégration IDE (environnement de développement intégré)
Pour faciliter l'utilisation de l'outil d'analyse par les développeurs, il est totalement intégré dans l'environnement IDE. Pendant le processus de génération, tous les avertissements générés pour le code source apparaissent dans la fenêtre Liste d'erreurs. Ces avertissements contiennent des informations relatives aux chemins des erreurs, le cas échéant ; un double-clic sur un avertissement met en surbrillance le chemin d'erreur ayant engendré l'avertissement.
Prise en charge de #pragma
Les développeurs peuvent utiliser la directive #pragma pour traiter les avertissements comme des erreurs et activer ou désactiver les avertissements comme le montrent les exemples suivants :
#pragma warning (error: 6260)
#pragma warning (disable: 6011)
#pragma warning (enable: 6056)
Prise en charge des annotations
Les annotations améliorent l'exactitude de l'analyse de code. Elles donnent des informations supplémentaires sur les conditions pre- et post- des paramètres de fonction et les types de retour.
#include <CodeAnalysis/SourceAnnotations.h>
[returnvalue:Post( MustCheck=SA_Yes )] double* CalcSquareRoot
(
[Pre( Null=SA_No )] double* source,
unsigned int size
);
Dans l'exemple précédent :
[Post ( MustCheck=SA_Yes)] requiert que l'appelant vérifie la valeur de retour de CalcSquareRoot
[Pre ( Null=SA_No)] requiert que l'appelant passe le paramètre non null "source" à CalcSquareRoot
Exécution de l'outil d'analyse dans le cadre de la stratégie d'archivage
En tant qu'organisation, vous pouvez décider d'exiger que tous les archivages appliquent certaines stratégies. En particulier, vous souhaitez vous assurer que ces stratégies sont appliquées :
Il n'y a aucune erreur de génération dans le code qui est archivé.
L'analyse de code a été effectuée sur la version de code la plus récente.
Vous pouvez le faire en spécifiant des stratégies d'archivage.
Intégration de Team System/Team Build
Vous pouvez utiliser les fonctionnalités intégrées du système de génération pour exécuter l'outil d'analyse dans le cadre du processus de génération. Pour plus d'informations, consultez Vue d'ensemble de Team Foundation Build.
Prise en charge de la ligne de commande
En plus de l'intégration complète dans l'environnement de développement, les développeurs peuvent utiliser l'outil d'analyse à partir de la ligne de commande, comme le montre l'exemple suivant :
C:\>cl /analyze Sample.cpp