Cppcheck 2.13 portable

Cppcheck

Cppcheck to statyczny analizator kodu dla języka C/C++, przeznaczony do wyszukiwania błędów, które nie są wykrywane przez kompilatory. Głównym celem projektu jest zminimalizowanie liczby fałszywych alarmów przy wyszukiwaniu błędów. Analizator jest w stanie sprawdzić niestandardowe fragmenty kodu, w tym wykorzystanie rozszerzeń kompilatora , asemblera inline itp.

Przed wykonaniem analizy statycznej kod źródłowy jest konwertowany na reprezentację nadającą się do dalszej analizy. Program usuwa wszystkie komentarze, zastępuje makra ich definicjami, zastępuje wszystkie redefinicje typów oryginalnymi typami danych i sprowadza kod do jednego stylu. Jeżeli znane są wartości zmiennych, to zamiast nazw zmiennych podstawiane są ich wartości. Nazwy zmiennych są dodawane do ich unikalnych identyfikatorów w programie, co ułatwia dalszą analizę wykorzystania zmiennych. Na przykład „int a;” można go zastąpić „int a@1;” jeśli zmienna jest zadeklarowana jako pierwsza w programie. Wprowadzono również inne uproszczenia kodu w celu ułatwienia analizy. Kolejnym krokiem jest sprawdzenie kodu zgodnie z regułami załadowanymi do programu, które dopasowują kod do wzorców błędów krytycznych i stylistycznych. Najprostsze zasady mogą opierać się na wykorzystaniu wyrażeń regularnych.
Ponieważ nie ma rzeczywistego wykonania kodu, komunikaty o błędach generowane przez analizator mogą w rzeczywistości wskazywać na poprawnie napisany kod, co nazywa się fałszywymi trafieniami. Zdarzają się również sytuacje, w których znaleziony błąd nigdy nie może się ujawnić podczas wykonywania kodu.

Cppcheck obsługuje szeroką gamę testów statycznych, które mogą nie być objęte przez sam kompilator. Te kontrole to statyczne kontrole analizy, które można wykonać na poziomie kodu źródłowego. Program jest ukierunkowany na sprawdzanie analizy statycznej, która ma charakter rygorystyczny, a nie heurystyczny.

Niektóre z obsługiwanych kontroli przez Cppcheck obejmują:
  • Automatyczne sprawdzanie zmiennych
  • Sprawdzanie granic pod kątem przekroczeń tablicy
  • Sprawdzanie klas (np. nieużywane funkcje, inicjalizacja zmiennych i duplikacja pamięci)
  • Wykorzystanie przestarzałych lub zastąpionych funkcji zgodnie z Open Group
  • Sprawdzanie bezpieczeństwa wyjątków, na przykład użycie alokacji pamięci i sprawdzanie destruktorów
  • Wycieki pamięci, np. z powodu utraty zakresu bez cofnięcia alokacji
  • Wycieki zasobów, np. z powodu zapomnienia o zamknięciu dojścia do pliku
  • Nieprawidłowe użycie funkcji i idiomów standardowej biblioteki szablonów
  • Eliminacja martwego kodu przy użyciu opcji unusedFunction
  • Różne błędy stylistyczne i wykonawcze.

Obsługuje integrację z różnymi narzędziami programistycznymi:
Darmowe:
-CLion – wtyczka
-Codacy – zautomatyzowany przegląd kodu z gotowym Cppcheck
-Kod::Bloki – zintegrowane
-Codelite – zintegrowany
-Eclipse — wtyczka
-gedit – wtyczka
-Hudson – wtyczka
-Jenkins — wtyczka
-Mercurial (Linux) — sprawdzanie nowych błędów podczas zatwierdzania (wymaga interaktywnego terminala)
-SonarQube — wtyczka C++ (edycja społecznościowa)
-Tortoise SVN – dodawanie skryptu przechwytującego przed zatwierdzeniem
-Visual Studio — cppcheck-vs-addin
-Visual Studio — integracja programu Cppcheck z Visual Studio dla biednych
-Visual Studio — aplikacja interfejsu Cppcheck dla programu Visual Studio.
Komercyjne:
-Wiersz poleceń – LintProject autorstwa RiverBlade
-CppDepend — zintegrowany. Uwaga: CppDepend jest darmowy do projektów open source.
-SoftaCheck – wtyczka GitHub uruchamiająca CppCheck
-SonarQube – Komercyjna wtyczka C++
-Visual Studio / Eclipse — Visual Lint autorstwa RiverBlade.

Działa w systemach: Windows 7/8/10/11
Licencja: bezpłatny (GNU GPLv3)

W folderze „lang” podmieniamy plik „cppcheck_de.qm”, następnie w opcjach programu wybieramy Edit > Preferences > Language > German i będziemy mieć program w języku polskim. Można podmienić plik językowy na inny, poprzez zmianę kodu języka.
PortableApps: CppcheckPortable > App > Cppcheck64 lub Cppchec, albo w obu w folderze lang.
Autorem spolszczenia jest użytkownik „fresta” (portal Programy za darmo).

Languages: Chinese, English, Finnish, French, German, Italian, Japanese, Korean, Nederlands, Russian, Serbian, Spanish, Swedish + Polish.

You may also like...