Erste Schritte mit dem PVS-Studio Static Analyzer für die C ++ - Entwicklung unter Linux

PVS-Studio unterstützt die Analyse von Projekten, die in C, C ++, C # und Java entwickelt wurden. Sie können den Analysator unter Windows, Linux und macOS verwenden. In diesem kleinen Artikel erfahren Sie, wie Sie C- und C ++ - Code in einer Linux-Umgebung analysieren.

Installation


Je nach Distributionstyp gibt es verschiedene Möglichkeiten, PVS-Studio unter Linux zu installieren. Die bequemste und bevorzugte Methode ist die Verwendung des Repositorys, da der Analysator beim Freigeben neuer Versionen automatisch aktualisiert werden kann. Eine andere Möglichkeit ist die Verwendung des Installationspakets, das Sie hier erhalten .

Die Installationsbefehle unterscheiden sich je nach verwendeter Linux-Distribution. So sieht beispielsweise die Installation aus dem Repository unter Debian-basierten Systemen 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 herunterladbaren Paket zu installieren, können Sie das Dienstprogramm gdebi verwenden :

 sudo gdebi pvs-studio-VERSION.deb 

Der Installationsprozess wird im Dokumentationsabschnitt " Installieren und Aktualisieren von PVS-Studio unter Linux " ausführlicher beschrieben. Dort finden Sie auch Informationen zu Nicht-Debian-Systemen.

Nach der Installation von PVS-Studio müssen Sie Lizenzdaten eingeben. Hier ist der Befehl dafür:

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

NAME und KEY sind der registrierte Benutzername bzw. der Lizenzschlüssel. Mit dem optionalen Parameter –o können Sie den Speicherort angeben, an dem eine Lizenzdatei generiert wird. Standardmäßig wird es im Verzeichnis ~ / .config / PVS-Studio / gespeichert.

Wenn Sie einen Testschlüssel benötigen, können Sie diesen auf der Seite " PVS-Studio herunterladen und auswerten " herunterladen .

Überprüfen Sie Ihr Projekt


Sobald Sie den Analysator installiert haben, können Sie Projekte überprüfen. Es gibt zwei Möglichkeiten, dies zu tun:

  1. Zusammenstellungsüberwachung.
  2. Wird direkt von Build-Systemen ausgeführt.

Sprechen wir über den ersten Weg. Um die Überwachung unter Linux zu starten, benötigen Sie das Dienstprogramm strace . PVS-Studio verwendet es, um eine Liste und Parameter von Prozessen zu erfassen, die während des Builds gestartet wurden.

Verwenden Sie den folgenden Befehl, um den Build zu starten:

 pvs-studio-analyzer trace -- make 

Hier wird make verwendet, aber jeder andere Befehl, den Sie zum Erstellen Ihres Projekts ausführen, kann an seiner Stelle stehen. Bei Bedarf können Sie Befehlszeilenparameter auf die übliche Weise übergeben.

Nach dem Build erstellt strace eine Datei, mit der der Analysator den Quellcode überprüft. Verwenden Sie den folgenden Befehl, um die Analyse zu starten.

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

Als Ergebnis wird eine verschlüsselte Protokolldatei generiert, die Sie in eines der unterstützten Formate konvertieren können. Wir werden später über die Arbeit mit Berichten sprechen.

Neben strace können Sie die Analyse auf die Datei compile_commands.json (JSON Compilation Database) stützen . In vielen Build-Systemen sind Kompilierungsbefehle integriert, oder Sie können dazu das Dienstprogramm BEAR verwenden. Hier ist der Befehl zum Starten der Analyse in diesem Fall:

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

Beachten Sie, dass der Analysator den im Erstellungsprozess verwendeten Compiler an seinem ausführbaren Namen erkennt. Wenn beim Versuch, Ihr Projekt zu analysieren, der Fehler "Keine Kompilierungseinheiten gefunden" angezeigt wird , geben Sie den Namen Ihres Compilers explizit über die Befehlszeilentaste –compiler oder –c an :

 pvs-studio-analyzer analyze -c MyCompiler 

Dies ist möglicherweise erforderlich, wenn Sie Cross-Compilation verwenden oder wenn Ihr Compiler einen nicht standardmäßigen ausführbaren Namen hat.

Neben dem Überwachungsmodus können Sie den Analysator direkt in Ihr Build-System oder Ihre IDE integrieren. Unser offizielles GitHub- Repository bietet Beispielprojekte, bei denen die Integration bereits konfiguriert wurde:


Weitere Informationen zum Ausführen des Analysators unter Linux finden Sie in der Dokumentation .

Arbeiten mit Berichten


Nach der Überprüfung eines Projekts erstellt der Analysator einen codierten Bericht. Um es in eines der unterstützten Formate zu konvertieren, müssen Sie das Dienstprogramm plog-converter verwenden , das mit der PVS-Studio-Installation geliefert wird .

Hier ist eine Liste der unterstützten Formate:

  • xml - ein praktisches Format für die weitere Verarbeitung der Analyseergebnisse, das vom Plugin für SonarQube unterstützt wird ;
  • csv - Datei speichert tabellarische Daten (Zahlen und Text) im Klartext;
  • errorfile ist das Ausgabeformat von gcc und clang.
  • Aufgabenliste - ein Fehlerformat, das in QtCreator geöffnet werden kann;
  • HTML - HTML-Bericht mit einer kurzen Beschreibung der Analyseergebnisse;
  • fullhtml - Bericht mit Sortierung der Analyseergebnisse nach den verschiedenen Parametern und Navigation entlang des Quellcodes.

Das Fullhtml-Format ist das bequemste zum Anzeigen des Berichts, da es das Springen zur Codezeile ermöglicht, die der Warnung entspricht, an der Sie interessiert sind. Mit dem folgenden Befehl können Sie den Bericht in dieses Format konvertieren:

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

Wenn Sie es starten, enthält ein neu erstelltes Verzeichnis mit dem Namen / path / report_dir alle Berichtsdateien.

Achten Sie auf den Parameter -a . Hier können Sie festlegen, welche Warnungen im resultierenden Bericht angezeigt werden sollen. Dies ist praktisch, wenn Sie die Ausgabe des Analysators filtern müssen. Mit dem obigen Befehl wird ein Bericht erstellt, der nur allgemeine Analysemeldungen der ersten und zweiten Sicherheitsstufe ( Hoch und Mittel ) enthält.

Ein Beispielbericht:

Bild 9


Durch Klicken in die Standortzelle einer Nachricht können Sie zur entsprechenden Codezeile springen:

Bild 8


Durch Klicken auf den Diagnosecode in der Spalte Code können Sie die Dokumentation zu dieser Diagnose öffnen.

Warnungen des Analysators unterdrücken


Wenn Sie einen statischen Analysator zur Überprüfung des Quellcodes verwenden, erhalten Sie möglicherweise falsch positive Ergebnisse oder einfach unerwünschte Rauschwarnungen. PVS-Studio hat Mittel, um solche Nachrichten zu unterdrücken. Um auf einzelne Warnungen abzuzielen, können Sie eine der Methoden verwenden, die im Dokumentationsartikel " Unterdrückung von Fehlalarmen " beschrieben sind.

Wenn Sie alten Code überprüfen, möchten Sie möglicherweise alle Warnungen unterdrücken. In der Regel benötigen Sie dies möglicherweise, wenn Sie nur neuen Code überprüfen möchten, den Sie einer vorhandenen Codebasis hinzufügen. Verwenden Sie dazu den Unterdrückungsparameter des Dienstprogramms pvs-studio-analyzer .

Mit diesem Befehl können Sie Warnungen in einem Bericht massenweise unterdrücken:

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

Informationen zu unterdrückten Warnungen werden in einer Datei mit dem Namen suppr__base.json gespeichert, die sich neben dem Projekt befindet. Solche Nachrichten werden von Berichten über nachfolgende Überprüfungen ausgeschlossen.

Dieser Mechanismus wird hier ausführlich beschrieben.

Fazit


Dies war eine kurze Einführung in die Verwendung von PVS-Studio unter Linux. Ich hoffe, es war nützlich und hat es geschafft, die häufigsten Fragen zu beantworten. Wenn Sie weitere Informationen zum Thema dieses Artikels benötigen, lesen Sie die Dokumentation hier .

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


All Articles