Есть ли список сообщений Cppcheck?

Наша команда ранее использовала Lint в качестве статического анализатора кода, но он стал слишком загроможденным и Слишком много шума.

Мы используем C++03 с частым использованием Boost. , и Lint, похоже, не понравился Boost (я слышал, что в более поздних версиях это стало лучше). Я начал искать другие статические анализаторы кода и наткнулся на Cppcheck и попробовал его. Я очень впечатлен тем, о чем он предупреждает (я видел около дюжины информационных сообщений и проблем со стилем).

Что меня интересует, так это: Существует ли список всех сообщений Cppcheck, которые выдает Cppcheck, похожий на как Lint и PVS-Studio есть список их сообщений? На официальном веб-сайте Cppcheck перечислены:

  • Проверка за пределами границ
  • Проверка утечек памяти
  • Обнаружение возможных разыменований нулевого указателя
  • Проверить наличие неинициализированных переменных
  • Проверить недопустимое использование STL
  • Проверка безопасности исключений
  • Предупреждать, если используются устаревшие или небезопасные функции
  • Предупреждать о неиспользуемом или избыточном коде
  • Обнаружение различного подозрительного кода, указывающего на ошибки

Но меня больше интересует что-то похожее на Lint и PVS-Studio, и похожее на то, как выводятся результаты в Visual Studio:

ID | Category/Severity | Text

person Tas    schedule 23.07.2015    source источник


Ответы (1)


Список проверок Cppcheck доступен на вики проекта, и, как указано там, вы также можно получить список из командной строки, запустив:

$ cppcheck --doc

or

$ cppcheck --errorlist

Список ошибок выводит файл XML со всеми тремя вещами, которые вы хотите. Вот небольшой пример оттуда:

<error id="unnecessaryForwardDeclaration" severity="style" msg="The variable &apos;name&apos; forward declaration is unnecessary. Type variable is already declared earlier."/>
<error id="variableHidingEnum" severity="style" msg="variable &apos;name&apos; hides enumerator with same name"/>
<error id="unnecessaryQualification" severity="style" msg="The extra qualification &apos;type&apos; is unnecessary and is considered an error by many compilers."/>
person HairyFotr    schedule 23.07.2015
comment
Спасибо! Это именно то, что мне нужно. Быстрое продолжение: возможно ли вывести --errorlist xml в файл, а не в командное окно? - person Tas; 24.07.2015
comment
Для этого вы можете использовать редирект: cppcheck --errorlist > errorlist.xml - person HairyFotr; 24.07.2015