Как использовать параметр встроенного фильтра подавления cppcheck для кода C++?
Я хотел бы использовать Cppcheck для статического анализа кода моего кода C++. Я узнал, что я могу подавить некоторые предупреждения с --inline-suppr
команда. Тем не менее, я не могу найти то, что "suppressed_error_id" я должен поместить в комментарии:
// cppcheck-suppress "suppressed_error_id"
4 ответа
Согласно справке 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, вы можете использовать --template
возможность изменить вывод по умолчанию, чтобы включить идентификатор, например,
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
Если вы используете графический интерфейс, вы можете щелкнуть правой кнопкой мыши на сообщении, которое вы хотите запретить, чтобы открыть меню. Выберите "Скопировать идентификатор сообщения". Вставьте идентификатор сообщения в свой код вместо "suppressed_error_id".