Wydanie cppcheck 2.7, statycznego analizatora kodu dla języków C++ i C

Została udostępniona nowa wersja statycznego analizatora kodu cppcheck 2.7, który umożliwia identyfikację różnych klas błędów w kodzie w językach C i C++, także przy zastosowaniu niestandardowej składni, typowej dla systemów wbudowanych. Dostępny jest zbiór wtyczek, dzięki którym cppcheck integruje się z różnymi systemami programistycznymi, ciągłej integracji i testowania, a także zapewnia takie funkcje, jak sprawdzanie zgodności kodu ze stylem kodu. Aby przeanalizować kod, możesz użyć własnego parsera lub zewnętrznego parsera firmy Clang. Zawiera także skrypt donate-cpu.py zapewniający lokalne zasoby umożliwiające wspólne przeglądanie kodu pakietów Debiana. Kod źródłowy projektu rozpowszechniany jest na licencji GPLv3.

Rozwój cppcheck koncentruje się na identyfikacji problemów związanych z niezdefiniowanym zachowaniem i stosowaniem projektów niebezpiecznych z punktu widzenia bezpieczeństwa. Celem jest również zminimalizowanie liczby 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 przesunięcia bitowego, nieprawidłowe konwersje, problemy podczas pracy z pamięcią, nieprawidłowe użycie STL, dereferencje wskaźników zerowych, stosowanie kontroli po rzeczywistym dostępie do bufora, przepełnienia bufora, użycie niezainicjowanych zmiennych.

Równolegle szwedzka firma Cppcheck Solutions AB opracowuje rozszerzoną wersję Cppcheck Premium, która umożliwia analizę obecności nieskończonych pętli, ulepszone wyszukiwanie niezainicjowanych zmiennych oraz zaawansowaną analizę przepełnienia bufora.

W nowej wersji:

  • Dodano obsługę widoków kontenerów - do znacznika biblioteki dodano atrybut view wskazujący, że klasa jest widokiem. Kod analizy okresu istnienia został zaktualizowany, aby używać tego atrybutu podczas wyszukiwania wiszących kontenerów;
  • Ulepszone kontrole;
  • Nagromadzone błędy zostały poprawione i wyeliminowane zostały niedociągnięcia w analizatorze.

Źródło: opennet.ru

Dodaj komentarz