Das PVS-Studio-Team und unser Produkt leisten einen großen Beitrag zur Entwicklung der Softwarequalität. Zusätzlich zur expliziten Erkennung von Fehlern in geschlossenen und offenen Projekten gibt es einen indirekten Beitrag zur Entwicklung von Compilern und anderen Code-Analyse-Tools. Wir freuen uns, dass wir manchmal Trendsetter sind, und haben beschlossen, dies in unserem Blog mit einer kleinen Anmerkung zu versehen.
PVS-Studio ist ein statischer Analysator zum Erkennen von Fehlern und potenziellen Schwachstellen im Quellcode von Programmen, die in C, C ++, C # und Java geschrieben wurden.
Um die Methodik der statischen Code-Analyse und unser Tool bekannt zu machen, schreiben wir Hinweise zur Überprüfung verschiedener Open-Source-
Projekte . Insbesondere überprüfen wir von Zeit zu Zeit verschiedene Compiler. Zum Beispiel haben wir Fehler in Projekten wie GCC, LLVM, PascalABC.NET, Roslyn überprüft und gefunden.
Wir haben wiederholt eine interessante Tatsache bemerkt. Sobald wir beispielsweise LLVM oder GCC überprüfen, erscheinen nach ein oder zwei Releases in diesen Compilern einige neue Diagnosen, die darauf abzielen, Fehler zu identifizieren, die PVS-Studio in ihrem Code finden könnte :). Leider haben wir nicht damit gerechnet, Daten und Links zu relevanten Innovationen zu schreiben, daher müssen Sie hier unser Wort dafür nehmen. Verschiedene C ++ - Compiler leihen sich einen Teil unserer Diagnose aus, und wir glauben, dass dies völlig normal, korrekt und nützlich ist!
Zusätzlich zu C ++ - Compilern sind jetzt C # -Analysatoren mit der Ausleihdiagnose verbunden. Dies bedeutet, dass der in PVS-Studio implementierte C # -Analysator ein anderes Vorbild wird! Das zu realisieren ist schön und großartig.
In diesem Fall kann ich in Echtzeit festlegen, wie dies geschieht. Am 13. August 2019 haben wir einen großen
Artikel veröffentlicht , der sich mit der Überprüfung von .NET Core Libraries (CoreFX) befasst. In diesem Artikel haben wir unter anderem das Fehlermuster beschrieben, das mit der Verwendung interpolierter Zeichenfolgen verbunden ist (siehe
V3138- Diagnose). CoreFX-Entwickler waren sehr an unserer Veröffentlichung interessiert und begannen, die gefundenen Fehler zu beheben. Und bereits am 14. August kamen sie zu den Fehlern, die wir im Zusammenhang mit diesen sehr interpolierten Zeilen gefunden haben:
Korrigieren Sie einige fehlende $ s für die String-Interpolation bei der Ablaufverfolgung .
Nun der lustige Teil. Am selben Tag erschien im Roslyn Analyzers-Projekt eine Aufgabe zur Implementierung der neuen Diagnose "
Neue Regel: Interpolierte Zeichenfolgen, bei denen das Sonderzeichen $ 2767 fehlt ", die genau mit den in CoreFX behobenen Fehlern verbunden ist.
Wir freuen uns, dass unsere Arbeit für die CoreFX-Entwickler nützlich war und dass unsere Diagnose ein Beispiel für die Entwickler von Roslyn Analyzer wurde. Schade, dass das PVS-Studio-Tool an keiner Stelle in der Diskussion erwähnt wird. Es stellt sich heraus, dass sie diese Fehler selbst gefunden und eine eigene Diagnose erstellt haben. Natürlich wären wir geschmeichelt, wenn wir als Quelle genannt würden. Na ja.
Warum haben wir beschlossen, darüber zu schreiben? Wir freuen uns sehr und sind sogar ein bisschen stolz auf uns! Aufgrund unserer Erfahrung implementieren andere Compiler neue Diagnosen, die die Qualität der insgesamt entwickelten Software verbessern. Ich verstehe, dass wir nicht nur die Entwicklung der Fähigkeit von Compilern beeinflussen, Fehler zu finden. Wir freuen uns jedoch, dass wir zu diesem Prozess beitragen.
Stört es uns, dass andere Tools allmählich lernen, die gleichen Fehler wie PVS-Studio zu finden? Nein. Unser Tool existiert nur und wird verkauft, weil wir dem Compiler immer voraus sind. Unsere Aufgabe ist es, immer vorne zu bleiben. Das Bewusstsein, dass wir ständig eingeholt werden, erlaubt uns nicht, uns zu entspannen, und es kommt allen zugute. Darüber hinaus muss man verstehen, dass PVS-Studio nicht nur Warnungen ist, sondern auch:
- Schnelle und qualitativ hochwertige Unterstützung (nur Programmierer beantworten Briefe);
- Integration mit Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
- Möglichkeit zur Verwendung sowohl lokal als auch in der Cloud (Docker, Travis CI);
- Tools zur Integration von Analysen in große alte Projekte (Mass Suppression);
- Detaillierte Dokumentation mit Beispielen für jedes Fehlermuster;
- Der Mechanismus zum Senden von Briefen an Entwickler (BlameNotifier);
- Compiler-Überwachung;
- Usw.
Vielen Dank für Ihre Aufmerksamkeit. Ich hoffe, Sie waren mit uns für PVS-Studio zufrieden.
Probieren Sie unseren Analysator zur kontinuierlichen Qualitätskontrolle des Codes Ihrer Projekte aus.
Zusätzliche Links:
- Der Zeitplan für die Entwicklung von Diagnosefunktionen in PVS-Studio .
- Technologien, die im PVS-Studio Code Analyzer verwendet werden, um nach Fehlern und potenziellen Schwachstellen zu suchen .

Wenn Sie diesen Artikel einem englischsprachigen Publikum zugänglich machen möchten, verwenden Sie bitte den Link zur Übersetzung: Andrey Karpov.
PVS-Studio: Motor des Fortschritts .