Как использовать параметр встроенного фильтра подавления cppcheck для кода C ++? - PullRequest
21 голосов
/ 02 июня 2010

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

// cppcheck-suppress "suppressed_error_id"

Ответы [ 4 ]

20 голосов
/ 07 июля 2011

Вы можете изменить шаблон вывода для отображения идентификатора ошибки из командной строки, что довольно аккуратно.

Для вывода в формате Visual Studio с отображаемым идентификатором ошибки добавьте его в командную строку:

--template "{file}({line}): {severity} ({id}): {message}"

Это выдаст что-то вроде этого:

s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY

Что вы можете затем исключить, добавив строку:

// cppcheck-suppress bufferAccessOutOfBounds

К предыдущей строке исходного файла.

13 голосов
/ 02 июня 2010

Согласно справке cppcheck:

Идентификатор ошибки - это идентификатор, который вы хотите подавлять. Самый простой способ получить это использовать флаг командной строки --xml. Скопируйте и вставьте строку идентификатора из xml output.

Запустите cppcheck для некоторого кода, который содержит ошибку с флагом --xml, а затем посмотрите в сгенерированном XML-файле, чтобы найти его имя.

3 голосов
/ 04 октября 2014

Согласно справочной странице cppcheck , вы можете использовать опцию --template, чтобы изменить вывод по умолчанию для включения идентификатора, например,

cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
0 голосов
/ 04 октября 2016

Если вы используете графический интерфейс, вы можете щелкнуть правой кнопкой мыши на сообщении, которое вы хотите подавить, чтобы открыть меню. Выберите «Скопировать идентификатор сообщения». Вставьте идентификатор сообщения в свой код вместо «suppressed_error_id».

...