Uwolnienie wersja statycznego analizatora kodu cppcheck 2.6Że pozwala wykryć różnego rodzaju błędy w kodzie C i C++nawet przy użyciu niestandardowej składni typowej dla systemów wbudowanych.
Dostarczony jest zestaw wtyczek, dzięki którym zapewniona jest integracja cppcheck z różnymi systemami rozwoju, ciągłej integracji i testowania, a także funkcje takie jak sprawdzanie zgodności kodu ze stylem kodowania.
Aby przeanalizować kod, możesz użyć zarówno własnego parsera, jak i zewnętrznego parsera Clang. Zawiera również skrypt donate-cpu.py, który zapewnia lokalne zasoby do wspólnej pracy nad przeglądem kodu dla pakietów Debiana.
Rozwój cppcheck skupia się na identyfikacji problemów związanych z nieokreślonym zachowaniem oraz użycie konstrukcji, które są niebezpieczne z punktu widzenia bezpieczeństwa.
Celem jest również zminimalizowanie fałszywych alarmów. Wśród zidentyfikowanych problemów: wskaźniki do nieistniejących obiektów, dzielenie przez zero, przepełnienia liczb całkowitych, nieprawidłowe operacje przesuwania bitów, niepoprawne konwersje, problemy z pamięcią, nieprawidłowe użycie STL, wyłuskiwanie pustych wskaźników, stosowanie sprawdzeń po dostępie rzeczywistym do bufora, przepełnienie limitów bufora przy użyciu niezainicjowanych zmiennych.
Główne nowe funkcje cppcheck 2.6
W tej nowej wersji sDodaliśmy różne testy do jądra parsera, wśród których wyróżnia się weryfikacja braku deklaracji zwrotu w treści funkcji, nakładanie się rekordów danych, niezdefiniowanych definicji zachowań, a także weryfikacja dla porównywanej wartości jest poza zakresem reprezentacji wartości typu.
Kolejną wyróżniającą się nowością jest optymalizacja kopiowania nie dotyczy return std :: move (local);, plus dodano obsługę wyświetlania komunikatów diagnostycznych w różnych kolorach dla platform Unix oraz znacznik biblioteki może teraz zawierać tag dla inteligentnych wskaźników, które mają unikalną właściwość. Ostrzeżenie o zawieszonym łączu jest teraz wysyłane do tego typu inteligentnych wskaźników.
Ponadto, Kontrole Misra C 2012 zostały w pełni wdrożone, łącznie z poprawką 1 i poprawką 2, z wyjątkiem przepisów 1.1, 1.2 i 17.3. Kompilator powinien wykonać sprawdzenia 1.1 i 1.2. Kompilator taki jak GCC może sprawdzić 17.3.
Z innych zmian, które się wyróżniają tej nowej wersji:
- Plik nie może być otwierany jednocześnie w celu odczytu i zapisu w różnych strumieniach;
- Dodano analizę symboliczną dla ValueFlow. Przy obliczaniu różnicy między dwiema nieznanymi zmiennymi używana jest prosta delta;
- Reguły używane dla listy tokenów „definiuj” mogą również odpowiadać #include;
- Znacznik biblioteki może teraz zawierać tag a więc darmowe funkcje, które mogą akceptować kontenery, takie jak std :: size, std :: empty, std :: begin, std :: end itp. możesz określić yeld lub akcję dla kontenerów;
- Naprawiono problemy z obsługą parametru –cppcheck-build-dir;
htmlreport może teraz wyświetlać informacje o autorze (za pomocą git obwinia); - Rozszerzone wydawanie ostrzeżeń dotyczących zmiennych, które nie są stałe, ale mogą stać się stałe;
- Nagromadzone błędy i braki analizatora zostały naprawione.
Wreszcie, jeśli chcesz dowiedzieć się więcej o tej nowej wersji, możesz skonsultować się szczegóły w poniższym linku.
Jak zainstalować cppcheck w systemie Linux?
Dla tych, którzy są zainteresowani możliwością zainstalowania cppcheck w swojej dystrybucji Linuksa, mogą postępować zgodnie z instrukcjami, które udostępniamy poniżej.
Jeśli jesteś użytkownikiem Debiana lub jakiejkolwiek innej dystrybucji opartej lub wywodzącej się z niej, takiej jak Deepin lub Ubuntu, możesz zainstalować bezpośrednio z terminala, wpisując następujące polecenie:
sudo apt-get install cppcheck
Teraz dla tych, którzy są użytkownikami Fedory i pochodnymi, mogą przeprowadzić instalację, wpisując następujące polecenie:
sudo yum instalar cppcheck
Lub dla tych, którzy są użytkownikami Arch Linux lub jakiejkolwiek innej jego pochodnej, mogą zainstalować za pomocą następującego polecenia:
sudo pacman -S cppcheck