Написание пользовательских правил для cppcheck

Я использую cppcheck для статического анализа. Чтобы ускорить процесс проверки, я хочу настроить cppcheck для поиска некоторых пользовательских правил,
например, чтобы проверить, определены ли функции-геттеры как const.

Если у кого-то есть опыт написания пользовательских правил для cppcheck, не могли бы вы привести пример написания пользовательских правил ?.

P.S Я провел некоторое исследование, чтобы найти инструмент, который позволит мне писать собственные правила и ускорить процесс проверки.
Я нашел эти ссылки на эту тему

Какие инструменты статического анализа с открытым исходным кодом C ++ доступны?

C ++ инструмент статического анализа кода в Windows

Бесплатный инструмент для проверки исходного кода C / C ++ на соответствие стандартам кодирования?

5

Решение

Я разработчик Cppcheck.

Возможно, вы можете использовать параметры —rule и —rule-file для добавления таких правил. Может быть, вы можете использовать регулярное выражение, такое как:

\sget[A-Za-z]+\(\)\s+{\s+return

Это зависит от вашей кодовой базы.

Если вы можете написать регулярное выражение, то это самый прямой и простой способ создать собственное правило.

Для получения дополнительной информации прочитайте статьи «Правила написания» здесь:
http://sourceforge.net/projects/cppcheck/files/Articles/

Но, возможно, вы захотите написать более сложные правила, которые ищут такие методы получения, используя Cppcheck SymbolDatabase, tokenlist и синтаксическое дерево. Вы не можете использовать —rule и —rule-file тогда. У вас есть такой выбор:

  • Используйте —dump и напишите свои собственные сценарии, которые читают выходные данные (xml).
  • Напишите код на C ++ и скомпилируйте его в Cppcheck. Это относительно просто imho, но требует, чтобы вы скомпилировали Cppcheck самостоятельно.
6

Другие решения


По вопросам рекламы [email protected]