Verwendung des statischen Analysators PVS-Studio in der Entwicklung für eingebettete Systeme in C und C ++

In diesem Artikel erfahren Sie, wie Sie eine eingebettete Projektprüfung ausführen und mit dem Analysatorbericht arbeiten. PVS-Studio Analyzer unterstützt eine Reihe von Compilern für eingebettete Systeme. In der aktuellen Version ist es möglich, Projekte beim Erstellen mit einem der folgenden Compiler für Windows, Linux und macOS zu überprüfen:


Installation


Der Installationsvorgang hängt vom Betriebssystem ab, unter dem Sie entwickeln. Unter Linux können Sie den Analyzer aus dem Repository oder aus dem Installationspaket installieren.

Beispiel für Debian-basierte Systeme:

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 

oder

 sudo gdebi pvs-studio-VERSION.deb 

Unter macOS kann die Installation und Aktualisierung über Homebrew erfolgen :

 brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio 

Die zweite Möglichkeit besteht darin, das Paket von dmg zu installieren oder es manuell aus dem Archiv zu entpacken.

Unter Windows wird die Installation mit dem Installationsprogramm durchgeführt:


Sie können Installationspakete für alle unterstützten Systeme herunterladen und bei Bedarf einen Testschlüssel auf der Seite " PVS-Studio herunterladen und testen " anfordern.

Geben Sie nach der Installation den Lizenzschlüssel ein. Informationen dazu auf verschiedenen Plattformen finden Sie auf der Dokumentationsseite " So geben Sie die PVS-Studio-Lizenz ein und wie geht es weiter? ".

Projektüberprüfung


Die Projektüberprüfung für eingebettete Systeme kann auf die gleiche Weise durchgeführt werden wie bei der Entwicklung unter Windows, Linux und macOS.

Startoptionen für Linux werden im Artikel " Einführung in den statischen Analysator PVS-Studio bei der Entwicklung von C ++ - Programmen in der Linux-Umgebung " erläutert. Beachten Sie, dass Sie ihn bei der Analyse des Projekts möglicherweise angeben müssen, da Cross-Compilation zum Erstellen unter Embedded verwendet wird und der Compilername möglicherweise nicht dem Standard entspricht. Verwenden Sie dazu die Befehlszeilenoption –compiler oder –c :

 pvs-studio-analyzer analyze -c MyCompiler 

Verwenden Sie diesen Parameter, wenn der Analysator den verwendeten Compilertyp nicht bestimmen kann, dh wenn der Fehler "Keine Kompilierungseinheiten gefunden" ausgegeben wird.

Da sich die Zielplattform beim Cross-Compilieren von der unterscheidet, unter der die Assembly stattfindet, müssen Sie möglicherweise zusammen mit dem Compiler die Zielplattform mithilfe des Parameters --platform sowie den Typ des Präprozessors ( --preprocessor ) angeben .

Unterstützte Plattformen: win32, x64, linux32, linux64, macos, arm.

Unterstützte Präprozessoren: gcc, clang, keil.

Standardmäßig wählt Linux die Linux64- Plattform und den gcc- Präprozessor aus.

Wenn Sie Windows verwenden, können Sie das Projekt im Kompilierungsüberwachungsmodus überprüfen. Führen Sie dazu das Dienstprogramm " C and C ++ Compiler Monitoring UI " aus, das mit dem Analyzer installiert wird. Um die Überwachung zu starten, gehen Sie zum Menü Extras und klicken Sie auf Dateien analysieren ... Ein Dialogfeld wird geöffnet:


Klicken Sie auf die Schaltfläche " Überwachung starten " und führen Sie den Build aus. Klicken Sie nach Abschluss des Vorgangs im Dialogfeld in der unteren rechten Ecke des Bildschirms auf die Schaltfläche " Überwachung beenden ":


Das Testergebnis kann im Hauptfenster des Dienstprogramms " C- und C ++ - Compiler-Überwachung " angezeigt werden.

Sie können die Analyse auch über die Befehlszeile ausführen. Hierzu wird das Dienstprogramm CLMonitor verwendet. Sie können die Überwachung mit dem folgenden Befehl starten:

 CLMonitor.exe monitor 

Führen Sie das Dienstprogramm nach Abschluss der Assembly im Analysemodus aus:

 CLMonitor.exe analyze -l "<path>\out.plog" 

Der Analysator überprüft das Projekt und speichert die Ergebnisse in der im Parameter -l angegebenen Datei.

Siehe auch den Dokumentationsabschnitt " Kompilierungsüberwachungssystem in PVS-Studio ".

Arbeiten Sie mit Berichten


Um den Bericht unter Linux anzuzeigen, müssen Sie die als Ergebnis des Analysators erhaltene Datei mit dem Dienstprogramm plog-converter in eines der unterstützten Formate konvertieren . Sie können den Bericht im HTML-Format abrufen und den Quellcode mit dem folgenden Befehl anzeigen:

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

Die Konvertierung von Berichten wird im Artikel " Kenntnis des statischen Analysators PVS-Studio bei der Entwicklung von C ++ - Programmen unter Linux " ausführlicher beschrieben.

Unter Windows gibt es auch ein PlogConverter- Dienstprogramm, mit dem Sie Berichtsdateien auf ähnliche Weise konvertieren können:

 PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2 

oder

 PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2 

Ein Bericht im Plog- Format kann auch mit dem Dienstprogramm " C und C ++ Compiler Monitoring UI " über das Menü Datei-> PVS-Studio-Protokoll öffnen ... angezeigt werden.

Ein Beispiel:


Bei Bedarf können Sie mit diesem Dienstprogramm den Bericht über das Menü Datei in eines der unterstützten Formate exportieren.

MISRA-Standard


PVS-Studio klassifiziert Warnungen nach CWE und SEI CERT , die für statische Sicherheitstests ( SAST ) normaler Anwendungen geeignet sind. Für eingebettete Systeme gelten jedoch geringfügig andere Sicherheitsanforderungen, die vom speziell entwickelten MISRA- Standard abgedeckt werden. Die aktuelle Version des Analysators unterstützt einen Teil der Regeln von MISRA C und MISRA C ++. Die Liste der Diagnosen kann hier angezeigt werden und wird ständig erweitert.

Die Verwendung von MISRA-Regeln bei der Überprüfung von Projekten, die nicht für Embedded bestimmt sind, ist häufig nicht gerechtfertigt. Dies liegt an den Besonderheiten des Standards. In den meisten Fällen, wenn der Code ursprünglich nicht mit der Erwartung der MISRA-Konformität geschrieben wurde, gibt es während der Überprüfung viele falsche und nutzlose Warnungen. Daher sind MISRA-Regeln standardmäßig deaktiviert.

Um die MISRA-Analyse unter Linux zu aktivieren, müssen Sie die Analyse mit dem Schalter -a ausführen und einen numerischen Parameter übergeben, der den erforderlichen Modus festlegt. Dieser Parameter ist eine Kombination von Bitfeldern:

 -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 

Startbeispiel (GA- und MISRA-Diagnose enthalten):

 pvs-studio-analyzer analyze -a 36 -o /path/report.log 

Bei Verwendung des Plog-Konverters müssen Sie außerdem angeben, dass die MISRA-Diagnose in den Bericht aufgenommen werden soll:

 plog-converter -a MISRA:1,2,3 -m misra .... 

Unter Windows können Sie das Einstellungsdialogfeld " C und C ++ Compiler Monitoring UI " verwenden:


Weitere Informationen zur MISRA-Unterstützung finden Sie im Artikel " PVS-Studio: Unterstützung für MISRA C- und MISRA C ++ - Codierungsstandards ".

Fazit


In diesem Artikel haben wir die Funktionen des PVS-Studio-Analysators zum Testen von Projekten mit Schwerpunkt auf eingebetteten Systemen überprüft. Wenn Sie detailliertere Informationen zur Verwendung des Analysegeräts benötigen, empfehlen wir Ihnen, die folgenden Artikel zu lesen:




Wenn Sie diesen Artikel einem englischsprachigen Publikum zugänglich machen möchten, verwenden Sie bitte den Link zur Übersetzung: Yuri Minaev. Verwenden des statischen Analysators PVS-Studio in der C- und C ++ - Entwicklung für eingebettete Systeme

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


All Articles