Cppcheck
| Cppcheck
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Basisdaten
| |
| Hauptentwickler | Daniel Marjamäki u. a. |
| Entwickler | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Erscheinungsjahr | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Aktuelle Version | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | C++ |
| Kategorie | Programmierwerkzeug |
| Lizenz | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| deutschsprachig | ja |
| cppcheck.sourceforge.io | |
Cppcheck ist ein Programm zur statischen Codeanalyse für die Programmiersprachen C und C++. Es wird aktiv entwickelt<ref>Cppcheck. GitHub</ref> und unter der GNU General Public License veröffentlicht. Es unterstützt eine Vielzahl von Tests und ist in der Lage, nicht-standardisierten Code zu überprüfen.<ref>softeng.rl.ac.uk: <templatestyles src="Webarchiv/styles.css" />A Survey of C and C++ Software Tools for Computational Science ( vom 12. März 2012 im Internet Archive; PDF; 218 kB, englisch)</ref>
Funktionen
Cppcheck unterstützt eine Reihe von statischen Tests, die von Compilern nicht oder nur teilweise durchgeführt werden, wie z. B.:
- Array-Überläufe
- Ressourcen- und Speicherlecks
- Benutzung veralteter Funktionen<ref>Liste veralteter Funktionen</ref>
- Verwendung von Funktionen, die nicht threadsicher sind
- falsche Benutzung der Standard Template Library
- Ungenauigkeiten beim Aufruf von C-Standardbibliotheksfunktionen, z. B. verdächtige Formatstrings bei printf-Funktionen
- inkorrekte Ausnahmebehandlung
- verschiedene Geschwindigkeits- und Stiloptimierungen
- fehlerhafte Verwendung von Zeigervariablen
- uninitialisierte Variable
- „verdächtige“ Ausdrücke, wie z. B. Semikolon hinter Bedingung
Verbreitung
Das Programm wird von einigen Linux-Distributionen verteilt und mitentwickelt<ref>Cppcheck in Debian</ref><ref>Cppcheck in FreeBSD</ref> und existiert sowohl eigenständig als auch in Form von Plug-ins für verschiedene Entwicklungsumgebungen:
- Code::Blocks
- CodeLite<ref>CppCheck Plugin im CodeLite-Wiki, abgerufen am 13. Juli 2021.</ref>
- Eclipse<ref>Cppcheclipse</ref>
- Jenkins<ref>Cppcheck Plugin für Jenkins</ref>
- Visual Studio (über das Plug-in Cppcheck add-in<ref>Cppcheck add-in. In: Visual Studio Marketplace. Abgerufen am 12. Oktober 2018.</ref>)
- PlatformIO
- KDevelop
Außer der Version für die Kommandozeile existiert eine grafische Benutzeroberfläche basierend auf Qt.
Cppcheck wird in einigen großen Projekten eingesetzt und hat bereits geholfen, Fehler zu finden und zu beseitigen.<ref>Auflistung einiger wichtiger Fehlerfunde. Cppcheck-Wiki</ref> Dazu gehören unter anderem der Linux-Kernel, OpenOffice.org<ref>cl.cam.ac.uk: <templatestyles src="Webarchiv/styles.css" />Hunting for vulnerabilities in large software: the OpenOffice suite ( vom 28. September 2012 im Internet Archive; PDF; 127 kB, englisch)</ref> und LibreOffice, Debian<ref>Introducing the “Debian’s Automated Code Analysis” (DACA) project.lwn.net </ref> und MPlayer.
Weblinks
Einzelnachweise
<references responsive />