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