Java verfügt über einige sehr gute statische Open Source-Analysetools wie FindBugs , Checkstyle und PMD . Diese Tools sind einfach zu bedienen, sehr hilfreich, laufen auf mehreren Betriebssystemen und sind kostenlos .
Kommerzielle statische C ++ - Analyseprodukte sind verfügbar. Obwohl solche Produkte großartig sind, sind die Kosten für Studenten einfach zu hoch und es ist normalerweise ziemlich schwierig, eine Testversion zu bekommen.
Die Alternative besteht darin, statische Open Source C ++ - Analysetools zu finden, die auf mehreren Plattformen (Windows und Unix) ausgeführt werden können. Durch die Verwendung eines Open Source-Tools kann es an bestimmte Anforderungen angepasst werden. Die Werkzeuge zu finden war keine leichte Aufgabe.
Unten finden Sie eine kurze Liste der statischen C ++ - Analysetools, die von anderen gefunden oder vorgeschlagen wurden.
- C ++ Check http://sf.net/projects/cppcheck/
- Oink http://danielwilkerson.com/oink/index.html
- C- und C ++ - Codezähler http://sourceforge.net/projects/cccc/
- Schiene (aus Antworten)
- Mozillas Schweinefleisch (aus Antworten) (Dies ist jetzt Teil von Oink)
- Mozillas Dehydra (aus Antworten)
- Option
-Weffc++
für GNU g ++ verwenden (aus Antworten)
Was sind andere tragbare statische Open Source C ++ - Analysetools, die jeder kennt und die empfohlen werden können?
Einige verwandte Links.
- /programming/97454/c-static-code-analysis-tool-on-windows
- http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
- http://www.chris-lott.org/resources/cmetrics/
- Ein kostenloses Tool zum Überprüfen des C / C ++ - Quellcodes anhand einer Reihe von Codierungsstandards?
- http://spinroot.com/static/
- Auswahl eines statischen Code-Analyse-Tools
quelle
Antworten:
Oink ist ein Tool, das auf dem Elsa C ++ - Frontend aufbaut. Mozillas Schweinefleisch ist eine Gabel von Elsa / Oink.
Siehe: http://danielwilkerson.com/oink/index.html
quelle
CppCheck ist Open Source und plattformübergreifend.
Mac OS X:
quelle
choco install cppcheck
In Bezug auf den GNU-Compiler verfügt gcc bereits über eine integrierte Option, die zusätzliche Warnungen zu denen von -Wall ermöglicht. Die Option ist -Weffc ++ und es geht um die Verstöße gegen einige Richtlinien von Scott Meyers, die in seinen Büchern " Effective and More Effective C ++ " veröffentlicht wurden.
Die Option erkennt insbesondere die folgenden Elemente:
quelle
-Weffc++
warnt vor Tonnen von Konstrukten, die in einer großen Codebasis vollkommen in Ordnung sind. Ich stimme jedoch dem Vorschlag von zu-Wextra
; Verlasse dein Zuhause nicht ohne es!Derzeit in der Entwicklung, aber clang führt C-Analysen durch und zielt darauf ab, C ++ im Laufe der Zeit zu verarbeiten. Es ist Teil des LLVM- Projekts.
Update : Während auf der Zielseite "Der Analysator befindet sich in ständiger Arbeit" steht, ist er jetzt als statischer Analysator für C und C ++ dokumentiert .
Frage: Wie kann ich GCC / Clang für statische Analysen ausführen? (nur Warnungen)
Compiler-Option: -fsyntax-only
quelle
Jemand anderes erwähnte -Weffc ++, aber das ist tatsächlich eine der wenigen GCC-Warnungen, die ich standardmäßig nicht aktiviere. Die Warnungen, die ich einschalte, sind jedoch das wichtigste statische Analysewerkzeug in meinem Kit. Sie können die vollständige Liste der empfohlenen Warnungen anzeigen .
Zusammenfassend:
Beachten Sie, dass für einige dieser Versionen eine neue Version von gcc erforderlich ist. Sie müssen sie daher möglicherweise aus Ihrer Liste entfernen, wenn Sie auf 4.5 oder etwas anderes zurückgreifen.
quelle
John Carmack erwähnt PVS-Studio auch in diesem interessanten Blog-Beitrag über "Static Code Analysis" .
quelle
Wenn Sie mit Open Source wirklich "kostenlos" gemeint haben, ist die Prefast- Analyse von Microsoft eine gute. Natürlich nur für Windows. Es ist vollständig in Visual Studio und den Compiler integriert. z.B:
quelle
Mozillas statische Analyse ist wahrscheinlich einen Blick wert.
quelle
Schiene scheint die Rechnung für C zu füllen.
Wenn Sie Open Source nicht angegeben haben, würde ich sagen , dass PCLint von Gimpel Software wahrscheinlich eines der besten Tools für die Überprüfung von statischem Code in C ++ ist. Aber natürlich ist es kein Open Source.
Mac OS X:
quelle
Microsoft PREFast ist auch im Windows Driver Kit verfügbar. Version 7.0 kann hier heruntergeladen werden .
In den Microsoft-Dokumenten heißt es, dass es nur mit Treibercode ausgeführt werden soll, aber dieser (alte) Blog-Beitrag enthält Schritte zum Ausführen. Vielleicht kann es in einen normalen Erstellungsprozess integriert werden?
quelle
Wir haben an einem Eclipse CDT-Plug-In namens Metriculator gearbeitet. Es befindet sich noch in der Entwicklung, aber einige wichtige Metriken (z. B. LSLOC, McCabe, EfferentCoupling) sind bereits implementiert.
Weitere Informationen wie Videodemonstration und Dokumentation finden Sie unter http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/Documentation .
Der neueste nächtliche Build kann über die Update-Site unter folgender Adresse installiert werden: http://sinv-56013.edu.hsr.ch/metriculator/updatesite-nightly/site/
Weitere Beschreibung
Metriculator analysiert statisch den C ++ - Quellcode und generiert Softwaremetriken. Metriken werden als Codan-Prüfer implementiert. Die Analyseergebnisse können in einer separaten Ansicht untersucht werden. Jede Metrik verfügt über konfigurierbare Eigenschaften (z. B. einen Schwellenwert für 'maximale Codezeilen pro Funktion'). Wenn Sie diesen Schwellenwert überschreiten, wird ein Problem gemeldet und eine Markierung im Quellcode-Editor erstellt.
Mit dem Metrikator können Sie:
Derzeit enthält der Metriker die folgenden Metriken:
quelle
Sie sollten versuchen, oo-Browser es hat eine tolle Integration mit Xemacs
quelle
Man kann auch Erweiterungen von GCC in MELT (eine domänenspezifische Sprache zum Erweitern von GCC) oder GCC-Plugins in C (viel schwieriger) codieren , um benutzerdefinierte Analysen durchzuführen.
quelle
Doxygen führt einige Kontrollflussanalysen durch und generiert Diagramme. Das ist vielleicht nicht das, wonach Sie suchen, aber ich habe sie als nützlich erachtet.
quelle