메모리 덤프와 함께 페이징 파일이 포함된 CAB 파일

메모리 덤프 파일은 페이징 파일과 함께 캐비닛(CAB) 파일에 배치할 수 있습니다. Windows 디버거는 메모리 덤프 파일을 분석할 때 페이징 파일을 사용하여 덤프 파일을 만들 때 페이징된 메모리를 포함하여 전체 보기 메모리를 표시할 수 있습니다.

MyCab.cab 라는 CAB 파일에 다음 파일이 포함되어 있다고 가정합니다.

Memory.dmp Cabmanifest.xml Pagefile.sys Cabmanifest.xml 다음과 같이 표시한다고 가정합니다.

<?xml version="1.0" encoding="UTF-8"?>
<WatsonPageFileManifest>
  <Pagefiles>
    <Pagefile Name="pagefile.sys"></Pagefile>
  </Pagefiles>
</WatsonPageFileManifest>

다음 명령 중 하나를 입력하여 CAB 파일을 열 수 있습니다.

  • windbg /z MyCab.cab
  • kd /z MyCab.cab

디버거는 디버깅 세션에 포함할 페이징 파일 목록에 대한 Cabmanifest.xml 읽습니다. 이 예제에는 페이징 파일이 하나만 있습니다. 디버거는 페이징 파일을 디버깅 세션 중에 사용할 수 있는 TIF(대상 정보 파일) 파일로 변환합니다. 디버거는 TIF에 액세스할 수 있으므로 덤프 파일을 만들 때 페이징된 메모리를 표시할 수 있습니다.

CAB 파일에 페이징 파일의 수에 관계없이 디버거는 Cabmanifest.xml 나열된 페이징 파일만 사용합니다. 다음은 세 개의 페이징 파일을 나열하는 CAB 매니페스트 파일의 예입니다.

<?xml version="1.0" encoding="UTF-8"?>
<WatsonPageFileManifest>
  <Pagefiles>
    <Pagefile Name="pagefile1.sys"></Pagefile>
    <Pagefile Name="pagefile2.sys"></Pagefile>
    <Pagefile Name="swapfile.sys"></Pagefile>
  </Pagefiles>
</WatsonPageFileManifest>

Cabmanifest.xml 페이징 파일은 Windows에서 사용하는 순서와 동일한 순서로 나열되어야 합니다. 즉, 레지스트리에 표시되는 순서대로 나열되어야 합니다.

CAB 파일에 넣은 메모리 덤프 파일은 완전한 메모리 덤프여야 합니다. 제어판 사용하여 크래시가 발생할 때 완전한 메모리 덤프를 만들도록 Windows를 구성할 수 있습니다. 예를 들어 Windows 8 시스템 및 보안 > 시스템 고급 시스템 > 설정 > 시작 및 복구를 제어판 >수 있습니다. 제어판 사용하는 대신 이 레지스트리 항목의 값을 1로 설정할 수 있습니다.

Hklm\시스템\CurrentControlSet\컨트롤\CrashControl\CrashDumpEnabled

Windows 8.1 Windows를 다시 시작할 때 페이징 파일의 콘텐츠를 유지하도록 Windows를 구성할 수 있습니다.

Windows를 다시 시작할 때 페이징 파일을 저장하도록 지정하려면 이 레지스트리 항목의 값을 1로 설정합니다.

Hklm\시스템\CurrentControlSet\컨트롤\CrashControl\SavePageFileContents