Verëffentlechung vum cppcheck 2.6, e statesche Code Analyser fir C ++ a C Sproochen

Eng nei Versioun vum statesche Code Analyser cppcheck 2.6 gouf verëffentlecht, wat Iech erlaabt verschidde Klassen vu Feeler am Code an de C an C ++ Sproochen z'identifizéieren, och wann Dir net-Standard Syntax benotzt, typesch fir embedded Systemer. Eng Sammlung vu Plugins gëtt zur Verfügung gestallt, duerch déi cppcheck mat verschiddenen Entwécklung, kontinuéierlecher Integratioun an Testsystemer integréiert ass, a bitt och sou Features wéi d'Konformitéit vum Code mam Codestil kontrolléieren. Fir Code ze analyséieren, kënnt Dir entweder Ären eegene Parser oder en externen Parser vu Clang benotzen. Et enthält och den Donate-cpu.py Skript fir lokal Ressourcen ze bidden fir Zesummenaarbecht Code review Aarbecht fir Debian Packagen ze maachen. De Quellcode vum Projet gëtt ënner der GPLv3 Lizenz verdeelt.

D'Entwécklung vu cppcheck konzentréiert sech op d'Identifikatioun vun Probleemer verbonne mat ondefinéiert Verhalen an d'Benotzung vun Designen déi aus Sécherheetssiicht geféierlech sinn. D'Zil ass och falsch Positiver ze minimiséieren. Ënnert den identifizéierten Probleemer: Hiweiser op net-existent Objeten, Divisiounen no Null, ganz Zuelen Iwwerschwemmungen, falsch Bit Shift Operatiounen, falsch Konversiounen, Probleemer wann Dir mat Erënnerung schafft, falsch Notzung vu STL, Null Pointer Dereferenzen, d'Benotzung vu Schecken nom aktuellen Zougang op de Puffer, Puffer iwwerschratt, Benotzung vun uninitialized Variablen.

An der neier Versioun:

  • Déi folgend Kontrollen goufen an den Analyserkär bäigefüügt:
    • Feele vun engem Retour Bedreiwer am Funktioun Kierper;
    • records iwwerlappend Donnéeën, bestëmmt ondefinéiert Verhalen;
    • de Wäert, dee verglach gëtt, ass ausserhalb vun der Wäertvertriedung vum Typ;
    • Kopie Optimisatioun gëllt net fir zréck STD :: move (lokal);
    • d'Datei kann net gläichzäiteg opgemaach ginn fir a verschiddene Streamen ze liesen a schreiwen (Stream);
  • fir Unix Plattformen, zousätzlech Ënnerstëtzung fir Diagnostice Messagen a verschiddene Faarwen ze weisen;
  • dobäi symbolesch Analyse fir ValueFlow. Benotzt einfach Delta wann d'Differenz tëscht zwou onbekannte Verännerlechen Berechnung;
  • d'Regele benotzt fir d'Lëscht vun Tokens "definéieren" kënnen och mat #include passen;
  • tag bibliothéik kann elo en Tag enthalen , an deementspriechend déi gratis Funktiounen, déi Container wéi std :: Gréisst, std :: eidel, std :: beginn, std :: Enn, etc. kann Yeld oder Aktioun fir Stecker spezifizéieren;
  • tag bibliothéik kann elo en Tag enthalen fir Smart Pointer déi eenzegaarteg Besëtz hunn. Eng Warnung gëtt elo iwwer dangling Referenzen op dës Zorte vu Smart Pointer erausginn;
  • fix Problemer mat der Veraarbechtung vum —cppcheck-build-dir Parameter;
  • htmlreport kann elo Informatioun iwwer den Auteur weisen (mat git blame);
  • verlängert Warnungen iwwer Verännerlechen déi net konstant sinn, awer kéint sinn;
  • Déi akkumuléiert Feeler a Mängel vum Analysator goufen korrigéiert.

Zousätzlech sinn d'Schecken aus Misra C 2012, dorënner Amendment 1 an Amendment 2, komplett ëmgesat ginn, ausser d'Regele 1.1, 1.2 an 17.3. Kontrollen 1.1 an 1.2 musse vum Compiler ausgefouert ginn. Verifizéierung 17.3 ka vun engem Compiler wéi GCC ausgefouert ginn.

Source: opennet.ru

Setzt e Commentaire