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 :

  1. Il n'y a aucune erreur de génération dans le code qui est archivé.

  2. 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