Как использовать встроенный параметр «Фильтр подавления» CPPCHECK для кода C ++?
-
23-10-2019 - |
Вопрос
Я хотел бы использовать CPPCheck для анализа статического кода моего кода C ++. Я узнал, что могу подавить какие -то предупреждения с --inline-suppr
командование Тем не менее, я не могу найти то, что «подавленное_еррор_ид» я должен поместить в комментарий:
// cppcheck-suppress "suppressed_error_id"
Решение
Согласно помощи CPPCHECK:
Идентификатор ошибки - это идентификатор, который вы хотите подавить. Самый простой способ получить его -использовать флаг командной строки -XML. Скопируйте и вставьте идентификационную строку из вывода XML.
Так что запустите CPPCHECK по какому -либо коду, который содержит ошибку с --xml
Флаг, а затем посмотрите в сгенерированном XML -файле, чтобы найти его имя.
Другие советы
Вы можете изменить выходной шаблон, чтобы отобразить идентификатор ошибки из командной строки, которая довольно аккуратно.
Для вывода формата Visual Studio с отображенным идентификатором ошибки добавьте это в свою командную строку:
--template "{file}({line}): {severity} ({id}): {message}"
Это даст вывод чего -то вроде этого:
s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY
Который вы можете затем подавить, добавив линию:
// cppcheck-suppress bufferAccessOutOfBounds
К предыдущей строке в исходном файле.
Согласно Cppcheck Man Page, вы можете использовать --template
Опция изменить выход по умолчанию, чтобы включить идентификатор, например,
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
Если вы используете графический интерфейс, вы можете щелкнуть правой кнопкой мыши на сообщение, которое вы хотите подавить, чтобы выяснить меню. Выберите «Скопировать идентификатор сообщения». Вставьте идентификатор сообщения в свой код вместо «Pustressed_error_id».