Фильтровать код библиотеки из / анализировать результаты

#c #visual-studio #static-code-analysis

#c #visual-studio #статический анализ кода

Вопрос:

Я пытаюсь использовать C Visual Studio /analyze для выполнения статического анализа кода в моем проекте.
Основная проблема, с которой я сталкиваюсь, заключается в том, что подавляющее большинство предупреждений, которые я получаю, относятся к различным библиотекам, которые я включаю, таким как boost и protobuf, а не к моему коду.
Есть ли способ отфильтровать предупреждения по пути? (кроме копирования в текстовый файл и выполнения grep …)

Ответ №1:

Согласно Документам Microsoft, я предлагаю вам попробовать этот метод.

  • Чтобы включить или отключить предупреждение об анализе кода

1. Создайте заголовочный файл, в котором перечислены все предупреждения анализа кода и их начальное состояние, как показано в следующем коде:

 // WarningState.h
   #pragma warning ( default : 6001 )
   #pragma warning ( disable : 6011 )
// more warnings here 
// end of file
  

2.Включить WarningState.h в заголовочном файле приложения. В данном случае, MyApplication.h представляет файл заголовка.

 // MyApplication.h file
   #include "WarningState.h"
// ...
// end of file
  

3.Включите MyApplication.файл h в файле исходного кода. В этом случае MyApplication.cpp представляет исходный файл.

 // MyApplication.cpp file
#include "MyApplication.h"
  

4.To измените состояние предупреждения, используйте спецификатор предупреждения pragma в файле .cpp, как показано в следующем коде:

 // MyApplication.cpp file
#include "MyApplication.h"
#pragma warning ( disable: 6001 )
#pragma warning ( default : 6001 )
  
  • Чтобы отключить все предупреждения анализа кода для включенных сторонних файлов

Добавьте следующий код в свой заголовочный файл.

 #include <codeanalysiswarnings.h>
#pragma warning( push )
#pragma warning ( disable : ALL_CODE_ANALYSIS_WARNINGS )
#include <third-party include files here>
#pragma warning( pop )
  

Комментарии:

1. Это действительно ужасное решение. Использование решений для анализа кода не должно зависеть от изменений в коде, чтобы заставить их работать должным образом

2. Честно говоря, я думаю, что копирование в текстовый файл и выполнение grep — лучший метод.