
Dans cet article, vous apprendrez à exécuter une vérification de projet intégrée et à utiliser le rapport de l'analyseur. L'analyseur PVS-Studio prend en charge un certain nombre de compilateurs pour les systèmes embarqués. Dans la version actuelle, il est possible de vérifier les projets lors de la construction avec l'un des compilateurs suivants pour Windows, Linux et macOS:
L'installation
La procédure d'installation dépend du système d'exploitation sous lequel vous développez. Sous Linux, vous pouvez installer l'analyseur à partir du référentiel ou du package d'installation.
Exemple pour les systèmes basés sur Debian:
wget -q -O - https:
ou
sudo gdebi pvs-studio-VERSION.deb
Pour macOS, l'installation et la mise à jour peuvent être effectuées depuis
Homebrew :
brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio
La deuxième option consiste à installer le package à partir de
dmg ou à le décompresser manuellement de l'archive.
Sous Windows, l'installation s'effectue Ă l'aide du programme d'installation:
Vous pouvez télécharger des packages d'installation pour tous les systèmes pris en charge et, si nécessaire, demander une clé d'essai sur la page "
Télécharger et essayer PVS-Studio ".
Après l'installation, entrez la clé de licence. Vous pouvez trouver des informations sur la façon de procéder sur différentes plates-formes, sur la page de documentation "
Comment entrer la licence PVS-Studio, et que faire ensuite ."
Vérification du projet
La vérification de projet pour les systèmes embarqués peut être effectuée de la même manière que dans le cas du développement sous Windows, Linux et macOS.
Les options de lancement pour Linux sont décrites dans l'article "
Présentation de l'analyseur statique PVS-Studio lors du développement de programmes C ++ dans l'environnement Linux ". N'oubliez pas qu'étant donné que la compilation croisée est utilisée pour générer sous Embedded et que le nom du compilateur peut être non standard, vous devrez peut-être le spécifier lors de l'analyse du projet. Pour ce faire, utilisez l'
option de ligne de commande
–compiler ou
–c :
pvs-studio-analyzer analyze -c MyCompiler
Utilisez ce paramètre lorsque l'analyseur ne peut pas déterminer le type de compilateur utilisé, c'est-à -dire lorsque l'erreur "Aucune unité de compilation trouvée" est émise.
Lors de la compilation croisée, puisque la plate-forme cible est différente de celle sous laquelle l'assemblage a lieu, avec le compilateur, vous devrez peut-être spécifier la plate-forme cible à l'aide du paramètre
--platform , ainsi que le type de préprocesseur (
--preprocessor ).
Plates-formes prises en charge:
win32, x64, linux32, linux64, macos, arm.Préprocesseurs pris en charge:
gcc, clang, keil.Par défaut, Linux sélectionne la plateforme
linux64 et le préprocesseur
gcc .
Si vous utilisez Windows, vous pouvez vérifier le projet en mode de surveillance de compilation. Pour ce faire, exécutez l'utilitaire "
C and C ++ Compiler Monitoring UI ", qui est installé avec l'analyseur. Pour démarrer la surveillance, allez dans le menu
Outils et cliquez sur
Analyser vos fichiers ... Une boîte de dialogue s'ouvre:
Cliquez sur le bouton "
Démarrer la surveillance " et exécutez la génération. Après son achèvement, cliquez sur le bouton "
Arrêter la surveillance " dans la boîte de dialogue dans le coin inférieur droit de l'écran:
Le résultat du test peut être consulté dans la fenêtre principale de l'utilitaire "
C and C ++ Compiler Monitoring UI ".
Vous pouvez également exécuter une analyse à partir de la ligne de commande. Pour cela, l'utilitaire CLMonitor est utilisé. Vous pouvez démarrer la surveillance avec la commande:
CLMonitor.exe monitor
Une fois l'assemblage terminé, vous devez exécuter l'utilitaire en mode analyse:
CLMonitor.exe analyze -l "<path>\out.plog"
L'analyseur vérifiera le projet et enregistrera les résultats dans le fichier spécifié dans le paramètre
-l .
Voir également la section de documentation "
Système de surveillance de la compilation dans PVS-Studio ".
Travailler avec des rapports
Pour afficher le rapport sous Linux, vous devez convertir le fichier obtenu Ă la suite de l'analyseur dans l'un des formats pris en charge Ă l'aide de l'
utilitaire plog-converter . Vous pouvez obtenir le rapport au format HTML avec la possibilité d'afficher le code source avec la commande suivante:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
La conversion des rapports est décrite plus en détail dans l'article "
Connaissance de l'analyseur statique PVS-Studio lors du développement de programmes C ++ sous Linux ".
Sous Windows, il existe également un utilitaire
PlogConverter qui vous permet de convertir des fichiers de rapport de la même manière:
PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2
ou
PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2
De plus, un rapport au format
plog peut être visualisé à l'aide de l'utilitaire "
C and C ++ Compiler Monitoring UI " via le menu
File-> Open PVS-Studio Log ...Un exemple:
Si nécessaire, à partir de cet utilitaire, vous pouvez exporter le rapport vers l'un des formats pris en charge via le menu
Fichier .
Norme MISRA
PVS-Studio classe les alertes selon
CWE et
SEI CERT , ce qui convient aux tests de sécurité statiques (
SAST ) des applications ordinaires. Cependant, les systèmes embarqués ont des exigences de sécurité légèrement différentes qui sont couvertes par la norme
MISRA spécialement développée. La version actuelle de l'analyseur prend en charge une partie des règles de MISRA C et MISRA C ++, la liste des diagnostics peut être consultée
ici , et elle est en constante expansion.
L'utilisation de règles MISRA lors de la vérification de projets qui ne sont pas destinés à être intégrés est souvent injustifiée. Cela est dû aux spécificités de la norme. Dans la plupart des cas, si le code n'a pas été écrit à l'origine dans l'attente de la conformité MISRA, il y aura beaucoup d'avertissements faux et inutiles lors de la vérification. Par conséquent, les règles MISRA sont désactivées par défaut.
Pour activer l'analyse MISRA sous Linux, vous devez exécuter l'analyse avec le commutateur
-a et passer un paramètre numérique qui définit le mode requis. Ce paramètre est une combinaison de champs de bits:
-a [MODE], --analysis-mode [MODE] MODE defines the type of warnings: 1 - 64-bit errors; 2 - reserved; 4 - General Analysis; 8 - Micro-optimizations; 16 - Customers Specific Requests; 32 - MISRA. Modes can be combined by adding the values Default: 4
Exemple de lancement (diagnostics GA et MISRA inclus):
pvs-studio-analyzer analyze -a 36 -o /path/report.log
Lorsque vous utilisez
un convertisseur plog , vous devez également indiquer que les diagnostics MISRA doivent être
inclus dans le rapport:
plog-converter -a MISRA:1,2,3 -m misra ....
Sous Windows, vous pouvez utiliser la boîte de dialogue des paramètres de l'utilitaire "
UI de surveillance du compilateur C et C ++ ":
Plus de détails sur la prise en charge de MISRA sont décrits dans l'article "
PVS-Studio: Prise en charge des normes de codage MISRA C et MISRA C ++ ".
Conclusion
Dans cet article, nous avons passé en revue les capacités de l'analyseur PVS-Studio pour tester des projets axés sur les systèmes embarqués. Si vous avez besoin d'informations plus détaillées sur la façon d'utiliser l'analyseur, je vous recommande de lire les articles suivants:

Si vous souhaitez partager cet article avec un public anglophone, veuillez utiliser le lien vers la traduction: Yuri Minaev.
Utilisation de PVS-Studio Static Analyzer dans le développement C et C ++ pour les systèmes embarqués