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


In diesem Artikel erfahren Sie, wie Sie die Analyse eines eingebetteten Projekts starten und wie Sie mit dem Bericht des Analysators arbeiten. Der PVS-Studio-Analysator unterstützt eine Reihe von Compilern für eingebettete Systeme. Die aktuelle Version ermöglicht das Überprüfen von Projekten, die mit einem der folgenden Compiler unter Windows, Linux und macOS erstellt wurden:


Installation


Der Installationsvorgang hängt vom Betriebssystem ab, das Sie in der Entwicklung verwenden. Unter Linux können Sie den Analyzer entweder aus dem Repository oder aus dem Installationspaket installieren.

Zum Beispiel auf einem Debian-basierten System:

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 können Sie Homebrew zum Installieren und Aktualisieren verwenden:

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

Eine weitere Option - Installation aus dem dmg- Paket oder manuelles Entpacken aus dem Archiv.

Unter Windows müssen Sie das Installationsprogramm verwenden:


Sie können Installationspakete für jedes unterstützte System herunterladen und bei Bedarf auf der Seite " PVS-Studio herunterladen und evaluieren" einen Testschlüssel anfordern.

Nach Abschluss der Installation müssen Sie den Lizenzschlüssel eingeben. Der Dokumentationsartikel " So geben Sie die PVS-Studio-Lizenz ein und wie geht es weiter? " Beschreibt diesen Vorgang ausführlich in Bezug auf verschiedene Plattformen.

Überprüfen Sie Ihr Projekt


Das Überprüfen von Projekten, die für eingebettete Systeme erstellt wurden, ähnelt dem Überprüfen von Projekten, die für Windows, Linux oder macOS entwickelt wurden.

Unter Linux verfügbare Optionen werden im Artikel " Erste Schritte mit dem PVS-Studio Static Analyzer für die C ++ - Entwicklung unter Linux " beschrieben. Beachten Sie, dass eingebettete Projekte übergreifend kompiliert werden und Ihr Compiler einen nicht standardmäßigen Namen haben kann. Aus diesem Grund müssen Sie es möglicherweise beim Starten der Analyse angeben, was Sie über die Befehlszeilentaste –compiler oder –c tun können.

 pvs-studio-analyzer analyze -c MyCompiler 

Die Verwendung ist erforderlich, wenn der Analysator den Compilertyp nicht erkennen kann, dh wenn der Fehler "Keine Kompilierungseinheiten gefunden" ausgegeben wird.

Da sich die Zielplattform aufgrund der Kreuzkompilierung von der Entwicklungsplattform unterscheidet, müssen Sie wahrscheinlich auch die Zielplattform über den Schlüssel --platform zusammen mit dem Präprozessortyp ( --preprocessor ) angeben .

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

Unterstützte Vorgänger: gcc, clang, keil.

Unter Linux sind die Linux64- Plattform und der gcc- Präprozessor die Standardeinstellungen .

Wenn Sie Windows verwenden, können Sie Ihr Projekt im Compiler-Überwachungsmodus überprüfen. Verwenden Sie dazu das Dienstprogramm " C- und C ++ - Compiler-Überwachungs-Benutzeroberfläche ", das mit dem Analysator geliefert wird. Um die Überwachung zu starten, gehen Sie zum Menü Extras und wählen Sie Dateien analysieren ... Dieser Dialog wird geöffnet:


Klicken Sie auf die Schaltfläche " Überwachung starten " und beginnen Sie mit der Erstellung Ihres Projekts. Wenn der Build abgeschlossen ist, klicken Sie im Dialogfenster in der unteren rechten Ecke des Bildschirms auf die Schaltfläche " Überwachung beenden":


Im Hauptfenster des Dienstprogramms " C- und C ++ - Compiler-Überwachung " können Sie die Analyseergebnisse anzeigen.

Sie können die Analyse auch über die Befehlszeile mit dem Dienstprogramm CLMonitor starten. Hier ist der Befehl, der die Überwachung einleitet:

 CLMonitor.exe monitor 

Starten Sie es nach dem Build erneut im Analysemodus:

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

Der Analysator überprüft Ihr Projekt und speichert die Ergebnisse in der mit der Taste -l angegebenen Datei.

Siehe auch " Compiler Monitoring System in PVS-Studio ".

Arbeiten mit Berichten


Um den Bericht unter Linux anzuzeigen, müssen Sie die vom Analysator generierte Protokolldatei in eines der unterstützten Formate konvertieren. Verwenden Sie dazu das Dienstprogramm plog-converter . Mit diesem Befehl können Sie beispielsweise einen HTML-Bericht erstellen, mit dem Sie den Quellcode anzeigen können:

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

Die Berichtskonvertierung wird ausführlicher im Artikel " Erste Schritte mit dem PVS-Studio Static Analyzer für die C ++ - Entwicklung unter Linux " beschrieben.

Die Windows-Version verfügt außerdem über ein Dienstprogramm namens PlogConverter , das in seiner Verwendung dem Linux-Gegenstück ähnelt:

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

oder

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

Sie können Berichte auch im Plog- Format mit dem Dienstprogramm " C und C ++ Compiler Monitoring UI " über den Menübefehl Datei-> PVS-Studio-Protokoll öffnen ... anzeigen .

Beispiel:


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

Misra-Codierungsstandard


PVS-Studio klassifiziert seine Warnungen nach CWE und SEI CERT , was für statische Sicherheitstests ( SAST ) regulärer Apps recht gut geeignet ist . Für eingebettete Systeme gelten jedoch unterschiedliche Sicherheitsanforderungen, die durch einen speziell entwickelten MISRA- Standard abgedeckt werden. Die aktuelle PVS-Studio-Version unterstützt teilweise MISRA C und MISRA C ++. Die regelmäßig wachsende Liste der unterstützten Regeln finden Sie hier .

Die Verwendung von MISRA-Regeln beim Überprüfen nicht eingebetteter Projekte ist aufgrund der Besonderheiten des Standards normalerweise eine schlechte Idee. In den meisten Fällen würde die Überprüfung, wenn der Code ursprünglich nicht MISRA-orientiert war, zu vielen Fehlalarmen und allgemein zu Rauschwarnungen führen. Daher sind die MISRA-Regeln standardmäßig deaktiviert.

Um MISRA unter Linux zu aktivieren, führen Sie die Analyse mit der Taste -a aus und übergeben Sie einen numerischen Parameter entsprechend dem gewünschten Modus. 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 

Beispiel (mit aktivierten GA- und MISRA-Regeln):

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

Außerdem müssen Sie plog-converter anweisen , MISRA-Warnungen in den resultierenden Bericht aufzunehmen:

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

Unter Windows können Sie die Einstellungen des Dienstprogramms " C- und C ++ - Compiler-Überwachung " verwenden:


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

Fazit


In diesem Artikel haben wir kurz die Funktionen des PVS-Studio-Analysators zum Überprüfen eingebetteter Projekte erläutert. Wenn Sie weitere Informationen zur Verwendung des Analysegeräts benötigen, empfehlen wir Ihnen, die folgenden Artikel zu lesen:

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


All Articles