
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:
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