Kenntnis des statischen Analysators PVS-Studio bei der Entwicklung von C ++ - Programmen unter Linux

PVS-Studio unterstützt die Analyse von Projekten in C, C ++, C # und Java. Sie können den Analysator unter Windows-, Linux- und MacOS-Systemen verwenden. Dieser Beitrag konzentriert sich auf die Analyse von Code, der in C und C ++ in einer Linux-Umgebung geschrieben wurde.

Installation


Abhängig von der Art der Distribution gibt es verschiedene Möglichkeiten, PVS-Studio unter Linux zu installieren. Die bequemste und bevorzugte Methode ist die Verwendung des Repositorys: Auf diese Weise können Sie den Analysator automatisch aktualisieren, wenn neue Versionen veröffentlicht werden. Die zweite Möglichkeit besteht darin, das Installationspaket zu verwenden, das hier heruntergeladen werden kann .

Die Befehle, die Sie zur Installation ausführen müssen, hängen von der von Ihnen verwendeten Linux-Distribution ab. Bei Debian-basierten Systemen sieht die Installation aus dem Repository beispielsweise folgendermaßen aus:

wget -q -O - https://files.viva64.com/etc/pubkey.txt | sudo apt-key add - sudo wget -O /etc/apt/sources.list.d/viva64.list \ https://files.viva64.com/etc/viva64.list sudo apt update sudo apt install pvs-studio 

Um PVS-Studio aus dem Installationspaket zu installieren, können Sie das Dienstprogramm gdebi verwenden:

 sudo gdebi pvs-studio-VERSION.deb 

Der Installationsvorgang wird im Abschnitt " Installieren und Aktualisieren von PVS-Studio unter Linux " der Dokumentation ausführlicher beschrieben. Dort finden Sie auch Informationen zu nicht Debian-basierten Systemen.

Nach der Installation müssen Sie die Lizenzdaten eingeben. Verwenden Sie dazu den Befehl

 pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE] 

Wobei NAME und KEY der Name sind, für den die Lizenz registriert ist, und der Lizenzschlüssel. Mit dem optionalen Parameter –o können Sie den Pfad angeben, über den die Lizenzdatei generiert wird. Standardmäßig wird es im Verzeichnis ~ / .config / PVS-Studio / gespeichert.

Den Testschlüssel erhalten Sie auf der Seite " PVS-Studio herunterladen und ausprobieren ".

Projektüberprüfung


Nach der Installation des Analysators können Sie mit der Überprüfung von Projekten beginnen. Es gibt zwei Möglichkeiten, dies zu tun:

  1. Zusammenstellungsüberwachung;
  2. Starten während des Montageprozesses direkt vom Montagesystem.

Betrachten wir zuerst die erste Methode. Um die Überwachung unter Linux zu starten, benötigen Sie das Dienstprogramm strace . Der Analysator sammelt damit Informationen darüber, welche Prozesse während der Montage des Projekts gestartet wurden.

Der Start wird mit dem folgenden Befehl ausgeführt:

 pvs-studio-analyzer trace -- make 

In diesem Beispiel wird build with make verwendet, aber jeder andere Befehl, den Sie zum Starten des Builds verwenden, kann anstelle von make verwendet werden. Befehlszeilenparameter können wie gewohnt übergeben werden.

Nach dem Zusammenbau erstellt strace eine Datei, mit der der Analysator den Quellcode überprüft. Sie können die Analyse mit dem Befehl ausführen

 pvs-studio-analyzer analyze -o /path/to/project.log 

Die Ausgabe ist eine verschlüsselte Datei mit den Ergebnissen, die Sie in eines der unterstützten Formate konvertieren können. Wir werden im nächsten Abschnitt die Arbeit mit Berichten in Betracht ziehen.

Zusätzlich zur Verwendung von strace kann die Analyse auch basierend auf der Datei compile_commands.json (JSON Compilation Database) ausgeführt werden. In vielen Build-Systemen können Sie Compiler-Aufrufbefehle exportieren oder das BEAR- Dienstprogramm verwenden. In diesem Fall können Sie die Analyse mit dem Befehl ausführen

 pvs-studio-analyzer analyze –f /path/to/compile_commands.json 

Es ist zu beachten, dass der Analysator den verwendeten Compiler anhand des Namens seiner ausführbaren Datei erkennt. Wenn während der Überprüfung die Fehlermeldung "Keine Kompilierungseinheiten gefunden" angezeigt wird , geben Sie den Namen Ihres Compilers über den Parameter –compiler oder –c an :
 pvs-studio-analyzer analyze -c MyCompiler 

Dies kann erforderlich sein, wenn Compiler mit nicht standardmäßigen ausführbaren Dateinamen übergreifend kompiliert und verwendet werden.

Zusätzlich zu den Starts im Überwachungsmodus können Sie den Analysator in Ihr Montagesystem oder Ihre IDE integrieren. Beispiele für Projekte mit bereits konfigurierter Integration auf GitHub finden Sie im PVS_Studio-Repository:


Ausführlichere Anweisungen zum Ausführen der Analyse unter Linux finden Sie in der Dokumentation .

Arbeiten Sie mit Berichten


Nach Überprüfung des Projekts erstellt der Analysator einen codierten Bericht. Verwenden Sie zum Konvertieren in eines der unterstützten Formate das Dienstprogramm plog-converter , das zusammen mit PVS-Studio installiert wird.

Das Dienstprogramm unterstützt die folgenden Formate:

  • xml - ein praktisches Format für die zusätzliche Verarbeitung von Analyseergebnissen, das vom Plugin für SonarQube unterstützt wird;
  • csv ist ein Textformat zur Darstellung von Tabellendaten.
  • errorfile - Ausgabeformat für gcc und clang;
  • Aufgabenliste - Fehlerformat, das in QtCreator geöffnet werden kann;
  • HTML - HTML-Bericht mit einer kurzen Beschreibung der Analyseergebnisse;
  • fullhtml - HTML-Bericht mit Sortieranalyseergebnissen nach verschiedenen Parametern und Navigation durch den Quellcode.

Das Fullhtml-Format eignet sich am besten zum Anzeigen des Berichts, da Sie zur Quellcodezeile wechseln können, in der die Warnung aufgetreten ist. Mit dem folgenden Befehl können Sie den Analysatorbericht in dieses Format konvertieren:

 plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir 

Nachdem der Befehl ausgeführt wurde, wird das Verzeichnis / path / report_dir erstellt, in dem sich die Berichtsdateien befinden.

Beachten Sie den Schalter -a . Hier können Sie festlegen, welche Warnungen in den Bericht aufgenommen werden sollen. Dies ist praktisch, wenn Sie den Ausgang des Analysators filtern müssen. Das obige Team erstellt einen Bericht, der nur Warnungen der allgemeinen Analysegruppe der ersten und zweiten Konfidenzstufe ( hoch und mittel ) enthält.

Berichtsbeispiel:

Bild 9


Durch Klicken in die Zelle Standort der Nachricht können Sie zur entsprechenden Codezeile wechseln:

Bild 8


Durch Klicken auf die Diagnosenummer in der Spalte Code wird die Dokumentation geöffnet, die diese Diagnose beschreibt.

Unterdrückung der Analysatorantwort


Bei der Überprüfung des Codes mit einem statischen Analysegerät sind Fehlalarme oder einfach unerwünschte Meldungen (Rauschen) möglich. PVS-Studio bietet Mechanismen zur Unterdrückung solcher Warnungen. Um Alarme einzeln zu unterdrücken, können Sie eine der im Dokumentationsabschnitt " Unterdrücken von Fehlalarmen " beschriebenen Methoden verwenden.

Bei der Analyse von altem Code kann es auch erforderlich sein, alle Nachrichten massiv zu unterdrücken. Dies ist in der Regel erforderlich, um nur den Code zu überprüfen, der der vorhandenen Codebasis hinzugefügt wird. Hierzu wird der Unterdrückungsparameter des Dienstprogramms pvs-studio-analyzer verwendet .

Mit dem folgenden Befehl können Sie Nachrichten in einem Bericht in großen Mengen unterdrücken:

 pvs-studio-analyzer suppress /path/to/report.log 

Informationen zu unterdrückten Nachrichten werden in der Datei suppr_base.json gespeichert, die sich neben dem Projekt befindet. Solche Meldungen werden bei nachfolgenden Inspektionen aus dem Bericht ausgeschlossen.

Dieser Mechanismus wird in der Dokumentation hier ausführlicher beschrieben.

Fazit


Dies war eine kurze Einführung in die Verwendung des PVS-Studio-Analysators für Linux. Ich hoffe es war nützlich und beantwortete die am häufigsten gestellten Fragen. Weitere Informationen zum Thema des Artikels finden Sie in der Dokumentation hier .



Wenn Sie diesen Artikel einem englischsprachigen Publikum zugänglich machen möchten, verwenden Sie bitte den Link zur Übersetzung: Yuri Minaev. Erste Schritte mit dem PVS-Studio Static Analyzer für die C ++ - Entwicklung unter Linux .

Source: https://habr.com/ru/post/de462661/


All Articles