Klocwork 9.6 игнорирует определенные проверки только в указанных файлах

Мы используем Klocwork 9.6 для статического анализа кода.
Для проведения анализа мы используем инструменты командной строки «kwcheck»
Есть некоторые ошибки, которые мы просто хотим отфильтровать.
например

(Local) *.cpp:134 UNINIT.STACK.ARRAY.MIGHT (1:Critical) Analyze
'FRUSerial' array elements might be used uninitialized in this function.

(Local) *.cpp:187 INFINITE_LOOP.LOCAL (2:Error) Analyze
Infinite loop

Это должно быть достигнуто с помощью функциональности Klocwork, а не с последующей обработкой вывода.

Существуют ли какие-либо конкретные команды / переключатели Klocwork, подходящие для этого?

0

Решение

Вы можете использовать kwcheck set-status Команда изменить статус дефекта от анализа до игнорирования или не проблема. Например, для дефекта, указанного ниже:

1 (Local) foo.cpp:134 UNINIT.STACK.ARRAY.MIGHT (1:Critical) Analyze
'FRUSerial' array elements might be used uninitialized in this function.

2 (Local) foo.cpp:187 INFINITE_LOOP.LOCAL (2:Error) Analyze
Infinite loop

Номер в начале каждой проблемы выше — это идентификатор дефекта, выводимый из kwcheck run или же kwcheck list, Таким образом, чтобы процитировать второй дефект и установить статус, чтобы игнорировать с комментарием, вы должны выполнить:

kwcheck set-status 2 --status ignore -c "we want to ignore this"

Обратите внимание, что по умолчанию kwcheck list отображаются только дефекты со статусом «Анализировать» или «Исправить», поэтому при установке состояния на одно из этих других значений дефекты больше не будут отображаться. Если вы хотите просмотреть список дефектов с определенным статусом, например, тех, которые вы установили как Игнорировать, вы можете использовать -s или же --status вариант с kwcheck list указать, какой статус (ы) показывать.

Если вы хотите полностью отключить определенные контролеры, вы можете отключить их, используя kwcheck disable команда. Это требует, чтобы вы создали локальный проект для анализа с kwcheck create команда. Вы можете создать локальный проект даже в качестве временного артефакта для настройки и управления локальным анализом и результатами. Не требуется связывать его с проектом на сервере Klocwork. Например:

Создайте локальный проект:

kwcheck create

Отключите шашки для дефектов, которые вы не хотите видеть:

kwcheck disable UNINIT.STACK.ARRAY.MIGHT INFINITE_LOOP.LOCAL

Запустите анализ:

kwcheck run -b buildspec.out
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]