Il s'agit d'un plugin d'analyse de code C / C ++ pour VSCODE qui montre des rapports de bogues détectés par l'analyseur Clang Static et les analyseurs Tidy Clang, en utilisant CodeChecker comme backend.

PATH .compile_commands.json .F9 / Shift-F9 par défaut) 


CodeChecker fonctionne en lisant une base de données de compilation générée, souvent appelée compile_commands.json , et en exécutant des analyses spécifiques sur la base de cela.
CMake a une prise en charge intégrée pour générer une base de données de compilation. Définissez la variable d'environnement CMAKE_EXPORT_COMPILE_COMMANDS=ON , et la base de données de compilation doit être dans votre dossier de construction. Si vous utilisez l'extension CMake Tools pour VS Code, vous pouvez ajouter cet indicateur aux paramètres d'extension sous Cmake > Build Environment .
make et d'autres systèmes de construction n'ont pas de prise en charge intégrée pour générer une base de données de compilation, mais CodeChecker peut en générer un en fonction de la commande build. Pour en générer un, vous pouvez utiliser la commande CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json .
Pour automatiser le processus, l'extension fournit des moyens d'exécuter automatiquement la commande CodeChecker log . Tout d'abord, dans les paramètres d'extension, définissez CodeChecker > Executor > Log build command , puis utilisez soit la tâche VS Code, soit la commande de code VS Code CodeChecker: Run CodeChecker Log pour exécuter l'analyse. Vous pouvez également exécuter CodeChecker: Preview CodeChecker log in terminal pour avoir un contrôle plus fin sur les paramètres transmis à CodeChecker.
L'extension utilise CodeChecker version 6.18.2 ou version ultérieure. Si votre chemin d'installation est différent ou que CodeChecker n'est pas dans la variable d'environnement PATH , le chemin d'accès à celui-ci peut être défini manuellement sous Preferences > Settings > Extensions > CodeChecker > Executable path .
L'extension peut exécuter une analyse CodeChecker sur votre projet, soit lors de l'enregistrement d'un fichier, soit lors de l'utilisation de l'une des commandes CodeChecker: Analyze . Vous pouvez arrêter l'analyse en cliquant sur le bouton Annuler sur la notification de CodeChecker - les résultats partiels sont enregistrés automatiquement.
L'analyse est entièrement configurable et la ligne de commande CodeChecker résultante peut être prévisualisée avec la CodeChecker: Show full command line (pour les arguments pris en charge, exécuter CodeChecker analyze --help ). Les paramètres de l'espace de travail actuel peuvent être définis sur l'onglet Espace de travail dans les paramètres. L'analyse automatique sur la sauvegarde peut également être configurée.
Des informations détaillées sur les options de configuration peuvent être trouvées dans les paramètres.
L'extension fournit les commandes suivantes:
| Commande | Description |
|---|---|
CodeChecker: Analyze current file | Analyse le fichier source actuellement ouvert à l'aide de CodeChecker. Peut également être appelé en cliquant sur le bouton Re-analyze current file dans le panneau latéral de CodeChecker.Utile lorsque l' Run On Save est désactivé dans les paramètres du plugin. |
CodeChecker: Analyze selected files... | Analyse les fichiers sélectionnés par l'utilisateur, à l'aide de CodeChecker. Accepte plusieurs fichiers en entrée. |
CodeChecker: Analyze entire project | Analyse l'ensemble du projet à l'aide de CodeChecker. Peut également être appelé en cliquant sur le bouton Re-analyze entire project dans le panneau latéral de CodeChecker.AVERTISSEMENT: Une analyse complète peut prendre des minutes, voire des heures sur des projets plus importants. |
CodeChecker: Stop running CodeChecker instance | Arrête l'analyse en cours. Les résultats partiels sont enregistrés et mis à jour. |
CodeChecker: Run CodeChecker log | Met à jour la base de données de compilation, en construisant le projet actuel. Une variante avec une commande de construction spécifiée par l'utilisateur personnalisé est également disponible. |
CodeChecker: Preview CodeChecker log in terminal | La commande de journal CodeChecker actuelle est collée dans une nouvelle fenêtre de terminal, où elle peut être modifiée avant de l'exécuter. |
CodeChecker: Show database setup dialog | Affiche la boîte de dialogue pour sélectionner le chemin d'accès à une base de données de compilation existante, ou pour en créer une nouvelle. |
CodeChecker: Next reproduction step ,CodeChecker: Previous reproduction step | Se déplace entre les étapes d'un chemin de reproduction affiché. Vous pouvez également naviguer directement à l'étape d'un rapport via le panneau latéral de CodeChecker. KeyBinds par défaut: Ctrl-F7 , Ctrl-Shift-F7 respectivement. |
CodeChecker: Show full CodeChecker analyze command line | Affiche la ligne de commande CodeChecker complète utilisée pour analyser les fichiers. Utile si vous souhaitez consulter les options de l'analyseur avant l'exécution, ou si vous souhaitez exécuter l'analyse manuellement. |
CodeChecker: Show Output | Concentre la sortie de CodeChecker dans l'éditeur. Les journaux du plugin, ainsi que la sortie des exécutions précédentes CodeChecker sont affichés ici. |
CodeChecker: Reload metadata | Recharger le fichier metadata.json de CodeChecker. Peut également être appelé en cliquant sur le bouton Reload CodeChecker metadata du panneau latéral du CodeChecker. |
Les commandes d'analyse sont également disponibles dans le formulaire de tâche:
| Tâche | Commande équivalente |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...Les fichiers sélectionnés sont répertoriés dans le tableau de selectedFiles , en utilisant des chemins complets. |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
Étant donné que les chemins liés à CodeChecker varient considérablement entre les systèmes, les paramètres suivants sont fournis, accessibles via le menu des paramètres:
| Nom | Description |
|---|---|
| CodeChecker> Backend> Folder de sortie (par défaut: ${workspaceFolder}/.codechecker ) | Le dossier de sortie où les fichiers d'analyse CodeChecker sont stockés. |
| CodeChecker> Backend> Chemin de base de données de compilation (par défaut: (vide) ) | Chemin vers une base de données de compilation personnalisée, en cas de système de construction personnalisé. La boîte de dialogue de configuration de la base de données définit le chemin d'accès à l'espace de travail actuel uniquement. Laissez vide pour utiliser la base de données dans le dossier de sortie de CodeChecker, ou pour utiliser l'autodétection de CodeChecker pour les espaces de travail multi-racines. |
| CodeChecker> Éditeur> Seveillons de bogues personnalisés (par défaut: null ) | Contrôlez comment un bogue est affiché dans l'éditeur, en fonction de sa gravité. Les bogues peuvent être affichés comme «erreur», «avertissement», «information» ou «indice». Par défaut, tout sauf la gravité du «style» s'affiche comme une erreur. Configuré comme un tableau, comme { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| CodeChecker> Éditeur> Afficher la boîte de dialogue de la base de données (par défaut: on ) | Contrôle la boîte de dialogue lors de l'ouverture d'un espace de travail sans base de données de compilation. |
| CodeChecker> éditeur> Activer les codelens (par défaut: on ) | Activez les codélens pour afficher le chemin de reproduction dans l'éditeur. |
| CodeChecker> Exécuteur> Activer les notifications (par défaut: on ) | Activer les notifications de toast liées à CodeChecker. |
| CodeChecker> Exécuteur> Chemin exécutable (par défaut: CodeChecker ) | Chemin vers l'exécutable CodeChecker. Peut être un exécutable dans la variable d'environnement PATH , ou un chemin absolu vers un. |
| CodeChecker> Exécuteur> Timeout d'analyse (par défaut: 60 ) | Le délai d'attente (en secondes) pour chaque analyse individuelle exécutée par la commande CodeChecker Analyze - réglée sur 0 pour désactiver le délai d'attente. |
| CodeChecker> Exécuteur> Compte de threads (par défaut: (vide) ) | Le nombre de threads de CodeChecker - laissez vide pour utiliser tous les threads. |
| CodeChecker> Exécuteur> Arguments (par défaut: (vide) ) | Arguments supplémentaires à CodeChecker analyze . Par exemple, si vous souhaitez utiliser un fichier de configuration pour CodeChecker Pass '--Config <FIFIG.json>'. Pour les arguments pris en charge, exécutez CodeChecker analyze --help .Remarque: La ligne de commande résultante peut être prévisualisée avec la commande CodeChecker: Show full CodeChecker analyze command line . |
| CodeChecker> Exécuteur> Commande de construction de journaux (par défaut: make ) | La commande de construction par défaut utilisée lors de l'exécution CodeChecker log via des commandes ou des tâches. |
| CodeChecker> Exécuteur> Arguments de journal (par défaut: (vide) ) | Arguments supplémentaires au CodeChecker log .Remarque: La ligne de commande résultante peut être prévisualisée avec la commande CodeChecker: Preview CodeChecker log in terminal . |
| CodeChecker> Exécuteur> Exécuter sur Save (par défaut: on ) | Contrôle la course automatique de CodeChecker sur la sauvegarde d'un fichier. |
Remarque : Si vous avez déjà installé cette extension sur Marketplace, le désinstallez d'abord pour éviter les conflits avec votre propre construction.
Cette extension utilise Node.js (V12 +) et YARN (V2 +). Les extensions recommandées contre le code sont Eslint et TypeScript + WEBPACK PROBLÈME MATCHER
Pour construire et exécuter l'extension, procédez comme suit:
yarn install --immutable , pour installer des dépendancescode . ) Pour exécuter des tests, sélectionnez les tests d'extension comme configuration de débogage actif ou exécutez yarn run test .
L'extension est publiée sous la licence Apache 2.0, la même licence que CodeChecker.