A a statikus kódelemző verziója cppcheck 2.6Hogy lehetővé teszi különféle hibák észlelését a C és C ++ kódokbanakkor is, ha a beágyazott rendszerekre jellemző nem szabványos szintaxist használjuk.
Bővítmények gyűjteménye biztosított, amelyeken keresztül a cppcheck különböző fejlesztési, folyamatos integrációs és tesztrendszerekkel történő integrálása biztosított, valamint olyan funkciók, mint például a kódnak a kódolási stílusnak való megfelelésének ellenőrzése.
A kód elemzéséhez használhatja a saját elemzőjét és a külső Clang elemzőt is. Tartalmaz egy donate-cpu.py szkriptet is, amely helyi erőforrásokat biztosít a Debian csomagok együttműködési kódvizsgálati munkájához.
A cppcheck fejlődése a meghatározatlan viselkedéssel kapcsolatos problémák azonosítására összpontosít és a biztonság szempontjából veszélyes szerkezetek használata.
A cél a hamis pozitívumok minimalizálása is. Az azonosított problémák között: mutatók nem létező objektumokra, nullával való osztás, egész számok túlcsordulása, helytelen biteltolási műveletek, helytelen konverziók, memóriaproblémák, az STL helytelen használata, a null-mutatók hivatkozásának visszavonása, ellenőrzések alkalmazása a pufferhez való valós hozzáférés után, a pufferhatárok túlcsordulása, inicializálatlan változók használatával.
A cppcheck 2.6 főbb újdonságai
Ebben az új verzióban se különféle ellenőrzéseket adott hozzá az elemző rendszermagjához, amelyek közül kiemelkedik a függvény törzsében a visszatérési nyilatkozat hiányának ellenőrzése, valamint az átfedő adatrekordok, a definiálatlan viselkedés definíciók és az összehasonlított érték ellenőrzése is kívül esik a reprezentáció tartományán a típus értékéből.
Egy másik kiemelkedő újdonság a a másolás optimalizálása nem vonatkozik a return std :: move (local) parancsra;, valamint támogatást adtunk a diagnosztikai üzenetek különböző színekben való megjelenítéséhez Unix platformokon, és hogy a könyvtár címkéje már tartalmazhat címkét egyedi tulajdonságokkal rendelkező intelligens mutatókhoz. Az ilyen típusú intelligens mutatókra immár lógó link figyelmeztetést adunk.
Ezen túlmenően, A Misra C 2012 vezérlőket teljes mértékben végrehajtották, beleértve az 1. módosítást és a 2. módosítást is, kivéve az 1.1., 1.2. és 17.3. A fordítónak el kell végeznie az 1.1 és 1.2 ellenőrzést. Egy olyan fordító, mint a GCC, ellenőrizheti a 17.3 -at.
A többi kiemelkedő változás közül ennek az új verziónak:
- A fájl nem nyitható meg egyszerre olvasáshoz és íráshoz különböző adatfolyamokban;
- A ValueFlow szimbolikus elemzése hozzáadva. Egy egyszerű delta -t használnak két ismeretlen változó közötti különbség kiszámításához;
- A "define" token listához használt szabályok az #include;
- A könyvtár címkéje már tartalmazhat címkét és így ingyenes funkciók, amelyek képesek elfogadni a tárolókat, például std :: size, std :: empty, std :: begin, std :: end stb. megadhatja a szalagot vagy műveletet a konténerekhez;
- Javítva a –cppcheck-build-dir paraméter kezelésével kapcsolatos problémák;
A htmlreport mostantól információkat nyomtathat a szerzőről (a git blame használatával); - A figyelmeztetések kiterjesztése olyan változókra, amelyek nem állandóak, de állandósulhatnak;
- Az elemzőben felhalmozódott hibákat és hiányosságokat kijavítottuk.
Végül, ha többet szeretne megtudni erről az új verzióról, konzultáljon a részleteket a következő linken.
Hogyan telepítsem a cppcheck -et Linuxra?
Azok számára, akik érdeklődnek a cppcheck telepítéséről Linux disztribúciójukra, követhetik az alább megosztott utasításokat.
Ha Debian felhasználó vagy bármely más, ezen alapuló vagy abból származó disztribúció, például a Deepin vagy az Ubuntu, telepítheti közvetlenül a terminálról a következő parancs beírásával:
sudo apt-get install cppcheck
Azok számára, akik Fedora felhasználók és azokból származnak, a következő parancs beírásával hajthatják végre a telepítést:
sudo yum instalar cppcheck
Vagy azoknak, akik Arch Linux felhasználók vagy azok bármely más származéka, telepíthetik a következő paranccsal:
sudo pacman -S cppcheck