드라이버의 코드 분석을 실행하는 방법

드라이버의 코드 분석은 소스 코드에서 가능한 결함에 대한 정보를 제공합니다. 코드 분석을 수동으로 실행할 수 있고, 각 빌드로 자동으로 코드 분석을 실행할 수도 있습니다.

이 항목의 내용:

코드 분석 실행

Hh454219.wedge(ko-kr,VS.85).gif드라이버 소스 코드의 코드 분석을 수동으로 실행하려면

  1. Visual Studio에서 드라이버 프로젝트 파일 또는 솔루션을 선택하고 분석할 프로젝트 구성 및 플랫폼을 선택합니다.
  2. 분석 또는 빌드 메뉴에서 솔루션에서 코드 분석 실행을 클릭합니다.

Hh454219.wedge(ko-kr,VS.85).gif각 빌드로 드라이버 소스 코드에서 코드 분석을 자동으로 실행하려면

  1. Visual Studio의 솔루션 탐색기에서 드라이버 프로젝트 또는 솔루션을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
  2. 프로젝트에 대한 속성 대화 상자에서 코드 분석을 클릭합니다.
  3. C/C++ 속성에 대한 코드 분석 페이지에서 분석할 프로젝트 구성 및 플랫폼을 선택합니다(예: Windows 8 및 Win32).
  4. 빌드할 때 C/C++에 코드 분석 사용을 선택합니다.
  5. 규칙 세트 아래에서 Microsoft 드라이버 권장 규칙을 선택합니다. 이것은 드라이버에 대한 기본 규칙 세트입니다.
  6. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

코드 분석 결과 보기

소스 코드에서 가능한 결함이 발견된 경우 코드 분석 결과 창이 코드 분석 경고 번호와 결함이 발생하는 소스 파일의 줄 번호를 표시합니다.

Hh454219.wedge(ko-kr,VS.85).gif결함을 보려면

  1. 코드 분석 결과 창에서 줄 번호를 클릭합니다. 그러면 코드 분석 결과 창에 결함에 대한 설명이 표시됩니다.

    코드 창은 소스 코드를 표시하고 결함이 발생하는 위치를 나타냅니다.

  2. 특정 경고에 대해 자세히 알아보려면 코드 분석 결과 창에서 해당 경고를 클릭하세요.

Hh454219.wedge(ko-kr,VS.85).gif빌드와 연관된 코드 분석 로그 파일을 보려면

  1. 빌드 구성 및 플랫폼에 대한 디렉터리(예: \Windows7Release\x64)를 탐색합니다.
  2. 권장 규칙을 사용할 경우 로그 파일은 vc.*codeanalysis.xml입니다. Windows Server 2012에 대한 드라이버를 작성할 경우 이 파일을 사용하여 드라이버 확인 로그를 만듭니다.

결함 보고서 억제

경고가 주로 정보 차원이고 오류의 원인을 알고 있는 경우와 같은 일부 경우에는 특정 경고 메시지의 보고서를 억제하기를 원할 수 있습니다.

Hh454219.wedge(ko-kr,VS.85).gif경고 메시지를 억제하려면

  1. 보고된 결함의 인스턴스를 제거하려면 코드 분석 결과 창에서 줄 번호 및 경고를 선택합니다.
  2. 확장된 경고 설명에서 작업 > 메시지 억제 > 원본에서를 클릭합니다.

    억제 지정자를 포함한 pragma 경고 지시문은 #pragma 경고 문 바로 뒤에 오는 코드 줄에 대한 경고만 억제합니다.

    
    #pragma warning(suppress: 6014)
    
    

커널 모드 드라이버에 대한 경고 C6262에 대해 스택 사용량 제한 변경

사용자 모드와 커널 모드 코드에서는 스택 공간이 제한되며 스택 페이지 커밋에 실패하면 스택 오버플로 예외가 발생합니다. 총 스택 공간이 12KB뿐이기 때문에 특히 커널 모드에서 높은 스택 사용량은 문제입니다. 커널 모드 코드는 스택 사용을 적극적으로 제한해야 합니다.

1KB 이상의 스택 공간이 함수에서 로컬로 사용되면 코드 분석 도구가 경고 C6262를 발행합니다. 리소스를 많이 사용할 가능성이 있는 함수를 조사하려는 경우 C6262에서 사용하는 스택 임계값 제한을 사용자 지정하거나 낮출 수 있습니다. 스택 임계값 제한을 낮추면 코드 분석 도구는 더 많은 문제를 찾을 수 있습니다. 그런 다음 스택 사용량 문제를 해결하도록 선택할 수 있습니다. 예를 들어, 임계값을 400바이트로 낮춰 다른 함수에서 리소스를 사용하는지 확인할 수 있습니다.

Hh454219.wedge(ko-kr,VS.85).gifC6262에 대해 스택 크기 제한을 사용자 지정하려면

  1. 메모장이나 다른 텍스트 편집기에서 커널 모드 드라이버(또는 구성 요소)의 Visual Studio 프로젝트 파일(.vcxproj)을 엽니다.
  2. 컴파일러 <ClCompile>에 대해 새 <ItemDefinitionGroup>을 추가합니다.
  3. <PREfastAdditionalOptions> 요소를 추가하고 stacksize<bytes>을 설정합니다. 기본값은 stacksize1024입니다.
    
    
      <ItemDefinitionGroup>
        <ClCompile>
    
        
          <!-- Change stack depth for C6262 from 1024 to 400 -->
          <PREfastAdditionalOptions>stacksize400</PREfastAdditionalOptions>
    
        </ClCompile>
      </ItemDefinitionGroup>
    
    
    
    
    
  4. 프로젝트 파일을 저장합니다. Visual Studio를 시작하고 업데이트된 드라이버 프로젝트를 로드한 다음 코드 분석을 실행합니다.

    기본값 1KB로 되돌리려면 프로젝트 파일에 변경한 내용을 취소하거나 스택 크기 값을 stacksize1024로 변경합니다.

관련 항목

드라이버의 코드 분석 경고

 

 

표시: