Подтвердить что ты не робот

Как использовать опцию фильтра cppcheck inline для кода С++?

Я бы хотел использовать Cppcheck для статического анализа кода моего кода на С++. Я узнал, что могу подавить какие-то предупреждения с помощью команды --inline-suppr. Тем не менее, я не могу найти, что "suppressed_error_id" я должен добавить в комментарий:

// cppcheck-suppress "suppressed_error_id"
4b9b3361

Ответ 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".