2015-06-20 3 views
5

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

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

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

What open source C++ static analysis tools are available?

C++ static code analysis tool on Windows

A free tool to check C/C++ source code against a set of coding standards?

+0

Hi, TM_. Запросы для автономных ресурсов и запросы на предложения инструмента не относятся к теме для stackoverflow. –

+1

Привет @DrewDormann на самом деле мой вопрос о написании пользовательских правил для cppcheck. Если даже просто упомянуть и вне темы, я могу удалить эту часть из моего вопроса. –

+0

Держу пари, что это поможет. Я перечитываю каждое предложение, которое вы набрали, и спросил себя: «Это вопрос?» * Я не мог найти ни одного вопроса. –

ответ

6

Я разработчик 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.
+1

Привет @ Даниэль Марьямяки Спасибо за ответ. Итак, как указано в документе, вы предоставили правило XML-файл, есть ли способ использовать этот созданный файл правил с графическим интерфейсом cppcheck? Где я могу установить новое правило в графическом интерфейсе? –

+1

В настоящее время вы не можете использовать правила в графическом интерфейсе. Я думаю, что было бы относительно легко улучшить графический интерфейс, но никто не хотел этого делать. –

+1

Хорошо спасибо, я постараюсь использовать с windows cmd terminal. –