다음을 통해 공유


정적 드라이버 검증 도구 진단

SDV에는 사용자와 Microsoft가 SDV에서 발생할 수 있는 문제를 해결하는 데 도움이 되는 진단 모드가 있습니다. 진단 모드를 사용하도록 설정하면 SDV는 드라이버 프로젝트의 일련의 파일에 메시지를 기록합니다( 확인 단계당 하나 및 규칙당 하나씩).

진단 사용

SDV에 대한 진단 모드(디버그 모드라고도 함)는 현재 명령줄에서 실행할 때만 사용하도록 설정할 수 있습니다. 명령줄에서 실행에 대한 자세한 내용은 정적 드라이버 검증 도구 명령(MSBuild)을 참조하세요.

진단 활성화하려면 /검사 명령 다음에 /debug 플래그를 추가합니다. 예시:

msbuild /t:sdv /p:Inputs="/check:* /debug" mydriver.VcxProj /p:Configuration="Release" /p:Platform=x64

진단 사용하도록 설정하면 명령 창에 훨씬 더 많은 출력이 생성될 뿐만 아니라 특정 로그 파일이 생성됩니다.

진단 이해

SDV는 각 실행 단계에서 해당 단계에 대한 세부 정보를 제공하는 여러 파일을 만듭니다. SDV가 실행을 통해 부분적으로 실패하면 이후 단계에 대한 진단 파일을 만들지 않습니다.

생성된 파일은 순서대로 다음과 같습니다.

  • smvexecute-NormalBuild.log: 드라이버의 원본 디렉터리에 있으며 추가 계측 및 분석 없이 드라이버를 빌드하려는 SDV의 초기 시도 출력을 보여 줍니다.

  • smvexecute-InterceptedBuild.log: 드라이버의 원본 디렉터리에 있으며 분석 후크가 추가된 드라이버를 빌드하는 SDV의 출력을 보여 줍니다.

  • smvcl.log: SDV에서 드라이버 프로젝트에서 만든 "sdv" 디렉터리에 있습니다. InterceptedBuild 단계의 컴파일러 출력을 보여줍니다. smvexecute-InterceptedBuild.log 오류가 표시되면 smvcl.log 추가 세부 정보를 찾을 수 있습니다.

  • smvexecute-Scan.log: SDV에서 드라이버 프로젝트에서 만든 "sdv" 디렉터리에 있습니다. 드라이버를 스캔하여 진입점을 찾으려는 SDV의 시도 출력을 보여줍니다. 여기서 오류는 진입점을 찾지 못했다는 것을 나타낼 수 있으며 함수 roletypes 또는 sdv-map.h를 업데이트해야 합니다. 자세한 내용은 함수 역할 형식 선언 사용 및 Sdv-map.h 파일 승인을 참조하세요.

  • smvexecute-FinalCompile.log: 이러한 파일 중 하나는 sdv에서 확인된 각 규칙에 대해 만들어지고 SDV가 드라이버 프로젝트에서 만든 "sdv\검사[규칙 이름]" 하위 폴더에서 찾을 수 있습니다. 이 파일은 OS 모델 및 특정 규칙을 사용하여 드라이버를 빌드하려는 SDV의 시도 출력을 보여줍니다.

  • smvexecute-CheckRule.log: 이러한 파일 중 하나는 sdv에서 확인된 각 규칙에 대해 만들어지고 SDV가 드라이버 프로젝트에서 만든 "sdv\검사[규칙 이름]" 하위 폴더에서 찾을 수 있습니다. 이 파일은 드라이버에 대해 지정된 규칙을 확인하려는 SDV의 시도 출력을 보여 줍니다.

명령 출력에서 실패한 대로 스테이지 목록에 해당하는 파일을 찾아야 합니다. FinalCompile 또는 CheckRule 단계에서 오류가 발생한 경우 실패로 나열된 특정 규칙에 대한 폴더를 검사 합니다.