Visual Studio 16.8 : l'analyse de code C++ prend en charge SARIF 2.1

Par:
fredericmazue

mar, 08/06/2021 - 13:52

À partir de Visual Studio 16.8, MSVC Code Analysis prend officiellement en charge la norme SARIF 2.1.0. SARIF est une norme de l'industrie pour représenter les journaux d'analyse statique.

SARIF est l'acronyme de Static Analysis Results Interchange Format, qui est un format standard basé sur JSON pour la sortie des outils d'analyse statique. SARIF fournit un format riche destiné à répondre aux besoins d'un large éventail d'outils d'analyse, à la fois sophistiqués et simples. Il fournit également un mécanisme d'extensibilité pour permettre aux auteurs d'outils de stocker des données personnalisées que le format SARIF ne prend pas directement en charge. 

MSVC Code Analysis utilise un format de journal XML personnalisé pour signaler les défauts détectés lors de l'analyse du code. Bien que cela ait bien servi les utilisateurs au cours de la dernière décennie selon Microsoft, l'entreprise de Redmond a décidé de prendre en charge SARIF pour des fonctionnalités plus riches telles que la journalisation de la liste des fichiers analysés, les remplacements de configuration pour l'analyse, l'emplacement où les défauts sont supprimés si la journalisation a supprimé les avertissements, etc.

Avec cette mise à jour, l'analse de code apporte une meilleure expérience dont :

  • L'analyse en arrière plan
  • Le marquage en vert des défauts trouvés dans le code
  • des recommandations pour corriger ces défauts

Parallèlement Microsoft a amélioré MSVC Code Analysis afin que les développeurs disposent de plus d'options pour écrire davantage d'informations dans les fichiers journaux SARIF :

  • Liste des fichiers analysés  
  • Configurations utilisées pour l'analyse de code, y compris les options de ligne de commande 
  • Actions de règle pour chacune des règles actives pour lesquelles des défauts sont signalés 
  • Possibilité de consigner les avertissements du compilateur en plus des avertissements d'analyse de code
  • Possibilité de consigner les avertissements supprimés avec l'emplacement de la suppression