You are on page 1of 8

CPPCHECK

Cppcheck — це інструмент статичного


аналізу коду для мов програмування C
і C++. Він забезпечує унікальний
аналіз коду для виявлення помилок і
фокусується на виявленні невизначеної
та небезпечної поведінки конструкції
кодування. Мета полягає в тому, щоб
виявити лише справжні помилки в коді
та створити якомога менше
помилкових спрацьовувань. Cppcheck
призначений для аналізу коду C/C++,
навіть якщо він використовує
нестандартний синтаксис. Творець і
провідний розробник — Даніель
Мар'ямякі.
Cppcheck є безкоштовним програмним
забезпеченням під загальною публічною
ліцензією GNU.

Підтримуваний код і платформи:

• Cppcheck перевіряє нестандартний код,


який містить різні розширення
компілятора.
• Cppcheck повинен компілюватися будь-
яким компілятором, який підтримує C++11
або пізніше.
• Cppcheck є міжплатформним і
використовується в різних середовищах.

Перевірки в Cppcheck не ідеальні. Є


помилки, які Cppcheck не може виявити.
Cppcheck підтримує широкий спектр статичних перевірок, які можуть не охоплюватися самим
компілятором. Ці перевірки є перевірками статичного аналізу, які можна виконати на рівні вихідного коду.
Програма спрямована на перевірки статичного аналізу, які мають суворий, а не евристичний характер.

Деякі з підтримуваних перевірок включають:

• Автоматична перевірка змінних


• Перевірка меж масиву на перевищення
• Перевірка класів (наприклад, невикористані функції, ініціалізація змінних і дублювання пам'яті)
• Перевірка безпеки винятків, наприклад використання розподілу пам’яті та перевірки деструктора
• Витоки пам'яті
• Витоки ресурсів
• Неправильне використання функцій і ідіом стандартної бібліотеки шаблонів
• Усунення мертвого коду за допомогою параметра unusedFunction
• Різноманітні стилістичні та виконавські помилки
Як і у випадку з багатьма програмами аналізу, існує багато незвичайних випадків ідіом
програмування, які можуть бути прийнятними в окремих цільових випадках або поза межами
можливостей програміста для виправлення вихідного коду. Cppcheck було визначено для
використання в таких системах, як пакет метааналізу CERN 4DSOFT, для перевірки коду в
пристроях зчитування детекторів частинок високої енергії, програмне забезпечення моніторингу
системи для радіотелескопів , а також для аналізу помилок великих проектів, такі як
OpenOffice.org та архів Debian.

За допомогою статичного аналізу можна виявити такі помилки:

• Невизначена поведінка

• Використання небезпечних шаблонів коду


• Стиль кодування
Є багато помилок, які ви не можете знайти за допомогою
статичного аналізу. Інструменти статичного аналізу не
мають людських знань про те, для чого призначена ваша
програма. Якщо вихідні дані вашої програми дійсні, але
неочікувані, тоді в більшості випадків це не виявляється
інструментами статичного аналізу. Наприклад, якщо ваша
невелика програма на екрані пише «Helo» замість «Hello»,
навряд чи якийсь інструмент статичного аналізу зверне
увагу на це.

Статичний аналіз слід використовувати як доповнення до


вашої гарантії якості. Він не замінить ретельного дизайну
коду, тестування, динамічного аналізу, тощо.

You might also like