메모리 덤프를 생성한다는 것은 무엇을 의미합니까? 메모리 덤프를 사용하여 실패 진단

치명적인 오류가 감지되면 모든 Windows 시스템은 RAM 내용의 크래시 덤프 (스냅 샷)를 만들어 하드 드라이브에 저장합니다. 메모리 덤프에는 세 가지 유형이 있습니다.

전체 메모리 덤프-RAM의 모든 내용을 저장합니다. 이미지 크기는 RAM 크기 + 1MB (헤더)와 같습니다. 메모리가 많은 시스템에서는 덤프 크기가 \u200b\u200b너무 커서 매우 드물게 사용됩니다.

커널 메모리 덤프-커널 모드에만 관한 RAM 정보를 저장합니다. 사용자 모드 정보는 시스템 충돌 원인에 대한 정보를 포함하지 않으므로 저장되지 않습니다. 덤프 파일 크기는 RAM 크기에 따라 달라지며 50MB (128MB RAM 시스템의 경우)에서 800MB (8GB RAM 시스템의 경우)까지 다양합니다.

작은 메모리 덤프 (미니 덤프)-매개 변수가있는 오류 코드, 시스템 충돌시 RAM에로드 된 드라이버 목록 등의 정보가 상당히 적지 만이 정보는 실패한 드라이버를 확인하기에 충분합니다. 이 유형의 덤프의 또 다른 장점은 파일 크기가 작다는 것입니다.

시스템 설정

우리를 일으킨 드라이버를 식별하려면 작은 메모리 덤프를 사용하는 것으로 충분합니다. 충돌 중에 시스템이 미니 덤프를 저장하려면 다음 단계를 수행해야합니다.

Windows XP 용 윈도우 7
  1. 내 컴퓨터 속성
  2. 탭으로 이동   선택 사항;
  3. 매개 변수;
  4. 현장에서 디버그 정보 기록  선택 작은 메모리 덤프 (64Kb).
  1. 아이콘을 마우스 오른쪽 버튼으로 클릭하십시오 컴퓨터상황에 맞는 메뉴에서 선택 속성(또는 키 조합 Win + Pause);
  2. 왼쪽 메뉴에서 항목을 클릭하십시오 추가 시스템 매개 변수;
  3. 탭으로 이동   선택 사항;
  4. 다운로드 및 복원 필드에서 매개 변수;
  5. 현장에서 디버그 정보 기록  선택 작은 메모리 덤프 (128Kb).

모든 조작을 수행 한 후에는 각 BSoD 후에 확장자가 .dmp 인 파일이 C : \\ WINDOWS \\ Minidump 폴더에 저장됩니다. ""자료를 읽어 보시기 바랍니다. " 기존 덤프 파일 교체" 이 경우, 각각의 새로운 비상 덤프는 이전 덤프 위에 작성됩니다. 이 옵션을 포함하지 않는 것이 좋습니다.

BlueScreenView를 통한 충돌 덤프 분석

따라서 죽음의 블루 스크린이 나타난 후 시스템은 새로운 비상 메모리 덤프를 저장했습니다. 덤프를 분석하려면 BlueScreenView 프로그램을 사용하는 것이 좋습니다. 무료로 다운로드 할 수 있습니다. 이 프로그램은 매우 편리하고 직관적 인 인터페이스를 가지고 있습니다. 설치 후 가장 먼저 할 일은 시스템에 메모리 덤프를 저장할 위치를 지정하는 것입니다. 이렇게하려면 메뉴 항목 " 옵션“그리고 선택” 고급옵션" 라디오 버튼 " 로드에서~팔로 잉미니 덤프폴더”그리고 덤프가 저장된 폴더를 나타냅니다. 파일이 C : \\ WINDOWS \\ Minidump 폴더에 저장되어 있으면 " 기본" 확인을 클릭하고 프로그램 인터페이스로 들어갑니다.

이 프로그램은 세 가지 주요 블록으로 구성됩니다.

  1. 메인 메뉴 블록 및 제어판;
  2. 비상 메모리 덤프의 차단 목록;
  3. 선택된 매개 변수에 따라 다음을 포함 할 수 있습니다.
  • 블루 스크린이 나타나기 전에 RAM에있는 모든 드라이버 목록 (기본적으로);
  • rAM 스택상의 드라이버리스트;
  • bSoD 스크린 샷
  • 우리가 사용하지 않을 다른 값들.

메모리 덤프의 블록 블록 (그림에서 숫자 2로 표시)에서 관심있는 덤프를 선택하고 주 메모리에로드 된 드라이버 목록 (그림에서 숫자 3으로 표시)을보십시오. 메모리 스택에 있던 분홍색 페인트 드라이버. 그런 다음 BSoD가 발생합니다. 다음으로 드라이버의 메인 메뉴로 가서 그들이 속한 장치 나 프로그램을 결정하십시오. 우선 시스템 파일은 RAM에로드되기 때문에 비 시스템 파일에주의하십시오. myfault.sys가 이미지의 결함이있는 드라이버임을 쉽게 알 수 있습니다. 이 프로그램은 Stop 오류를 일으키기 위해 특별히 시작되었다고 말할 것입니다. 실패한 드라이버를 확인한 후에는 업데이트하거나 시스템에서 제거해야합니다.

프로그램이 BSoD 발생 중에 메모리 스택에있는 드라이버 목록을 표시하려면 메뉴 항목 " 옵션"메뉴를 클릭하십시오" 낮게모드"선택" 드라이버발견안으로스택”(또는 F7 키를 누르십시오) 오류 스크린 샷을 표시하려면“ 블루스크린안으로XP스타일”(F8). 모든 드라이버 목록으로 돌아가려면 " 모두드라이버”(F6).

치명적인 오류가 감지되면 모든 Windows 시스템은 RAM 내용의 크래시 덤프 (스냅 샷)를 만들어 하드 드라이브에 저장합니다. 메모리 덤프에는 세 가지 유형이 있습니다.

전체 메모리 덤프-RAM의 모든 내용을 저장합니다. 이미지 크기는 RAM 크기 + 1MB (헤더)와 같습니다. 메모리가 많은 시스템에서는 덤프 크기가 \u200b\u200b너무 커서 매우 드물게 사용됩니다.

커널 메모리 덤프-커널 모드에만 관한 RAM 정보를 저장합니다. 사용자 모드 정보는 시스템 충돌 원인에 대한 정보를 포함하지 않으므로 저장되지 않습니다. 덤프 파일 크기는 RAM 크기에 따라 달라지며 50MB (128MB RAM 시스템의 경우)에서 800MB (8GB RAM 시스템의 경우)까지 다양합니다.

작은 메모리 덤프 (미니 덤프)-매개 변수가있는 오류 코드, 시스템 충돌시 RAM에로드 된 드라이버 목록 등의 정보가 상당히 적지 만이 정보는 실패한 드라이버를 확인하기에 충분합니다. 이 유형의 덤프의 또 다른 장점은 파일 크기가 작다는 것입니다.

시스템 설정

블루 스크린을 일으킨 드라이버를 식별하려면 작은 메모리 덤프를 사용하는 것으로 충분합니다. 충돌 중에 시스템이 미니 덤프를 저장하려면 다음 단계를 수행해야합니다.

Windows XP 용 윈도우 7
  1. 내 컴퓨터 속성
  2. 탭으로 이동   선택 사항;
  3. 매개 변수;
  4. 현장에서 디버그 정보 기록  선택 작은 메모리 덤프 (64Kb).
  1. 아이콘을 마우스 오른쪽 버튼으로 클릭하십시오 컴퓨터상황에 맞는 메뉴에서 선택 속성(또는 키 조합 Win + Pause);
  2. 왼쪽 메뉴에서 항목을 클릭하십시오 추가 시스템 매개 변수;
  3. 탭으로 이동   선택 사항;
  4. 다운로드 및 복원 필드에서 매개 변수;
  5. 현장에서 디버그 정보 기록  선택 작은 메모리 덤프 (128Kb).

모든 조작을 수행 한 후에는 각 BSoD 후에 확장자가 .dmp 인 파일이 C : \\ WINDOWS \\ Minidump 폴더에 저장됩니다. "폴더를 만드는 방법"자료를 읽어 보는 것이 좋습니다. " 기존 덤프 파일 교체" 이 경우, 각각의 새로운 비상 덤프는 이전 덤프 위에 작성됩니다. 이 옵션을 포함하지 않는 것이 좋습니다.

BLUESCREENVIEW 프로그램을 사용한 비상 메모리 덤프 분석

따라서 죽음의 블루 스크린이 나타난 후 시스템은 새로운 비상 메모리 덤프를 저장했습니다. 덤프를 분석하려면 BlueScreenView 프로그램을 사용하는 것이 좋습니다. 여기에서 무료로 다운로드 할 수 있습니다. 이 프로그램은 매우 편리하고 직관적 인 인터페이스를 가지고 있습니다. 설치 후 가장 먼저 할 일은 시스템에 메모리 덤프를 저장할 위치를 지정하는 것입니다. 이렇게하려면 메뉴 항목 " 옵션“그리고 선택” 고급옵션" 라디오 버튼 " 로드에서~팔로 잉미니 덤프폴더”그리고 덤프가 저장된 폴더를 나타냅니다. 파일이 C : \\ WINDOWS \\ Minidump 폴더에 저장되어 있으면 " 기본" 확인을 클릭하고 프로그램 인터페이스로 들어갑니다.

이 프로그램은 세 가지 주요 블록으로 구성됩니다.

  1. 메인 메뉴 블록 및 제어판;
  2. 비상 메모리 덤프의 차단 목록;
  3. 선택된 매개 변수에 따라 다음을 포함 할 수 있습니다.
  • 블루 스크린이 나타나기 전에 RAM에있는 모든 드라이버 목록 (기본적으로);
  • rAM 스택상의 드라이버리스트;
  • bSoD 스크린 샷
  • 우리가 사용하지 않을 다른 값들.

메모리 덤프의 블록 블록 (그림에서 숫자 2로 표시)에서 관심있는 덤프를 선택하고 주 메모리에로드 된 드라이버 목록 (그림에서 숫자 3으로 표시)을보십시오. 메모리 스택에 있던 분홍색 페인트 드라이버. 그런 다음 BSoD가 발생합니다. 다음으로 드라이버의 메인 메뉴로 가서 그들이 속한 장치 나 프로그램을 결정하십시오. 우선 시스템 파일은 RAM에로드되기 때문에 비 시스템 파일에주의하십시오. myfault.sys가 이미지의 결함이있는 드라이버임을 쉽게 알 수 있습니다. 이 프로그램은 Stop 오류를 일으키기 위해 특별히 시작되었다고 말할 것입니다. 실패한 드라이버를 확인한 후에는 업데이트하거나 시스템에서 제거해야합니다.

프로그램이 BSoD 발생 중에 메모리 스택에있는 드라이버 목록을 표시하려면 메뉴 항목 " 옵션"메뉴를 클릭하십시오" 낮게모드"선택" 드라이버발견안으로스택”(또는 F7 키를 누르십시오) 오류 스크린 샷을 표시하려면“ 블루스크린안으로XP스타일”(F8). 모든 드라이버 목록으로 돌아가려면 " 모두드라이버”(F6).

섹션에서    비상 메모리 덤프는 다음 매개 변수에 의해 결정됩니다.

REG_DWORD매개 변수 자동 재부팅  가치있는 0x1  (옵션 자동 재부팅  보조 창 창   시스템 속성);

REG_DWORD매개 변수 CrashDumpEnabled  가치있는 0x0메모리 덤프가 작성되지 않은 경우; 0x1전체 메모리 덤프; 0x2커널 메모리 덤프; 0x3작은 메모리 덤프 (64KB);

REG_EXPAND_SZ매개 변수 덤프 파일  가치있는 % SystemRoot % \\ MEMORY.DMP  (덤프 파일의 저장 위치);

REG_DWORD매개 변수 로벤 트  가치있는 0x1  (옵션 로그 이벤트  창문);

REG_EXPAND_SZ매개 변수 미니 덤 디르  가치있는 % 시스템 루트 % \\ 미니 덤프  (옵션);

REG_DWORD매개 변수 덮어 쓰기  가치있는 0x1  (옵션 기존 파일 교체  창문);

REG_DWORD매개 변수 SendAlert  가치있는 0x1  (옵션 관리 경고 보내기  창문).

시스템이 비상 메모리 파일을 작성하는 방법

부팅시 운영 체제는 레지스트리 키에서 비상 생성 옵션을 확인합니다. . 최소한 하나의 매개 변수가 지정되면 시스템은 부팅 볼륨에 사용 된 디스크 블록의 맵을 생성하여 메모리에 저장합니다. 또한 시스템은 부팅 볼륨을 관리하는 디스크 장치를 결정하고 이미지의 체크섬을 계산합니다.   메모리 및 I / O 조작을 수행하기 위해 정수 여야하는 데이터 구조의 경우.

실패 후 시스템 커널은 페이지 파일 카드, 디스크 및 디스크 제어 구조의 무결성을 검사합니다.. 이러한 구조의 무결성이 손상되지 않으면 시스템 커널은 특수 디스크 I / O 기능을 호출합니다. 실패 후 메모리 이미지를 저장하도록 설계되었습니다. 이러한 I / O 기능은 자급 자족하며 시스템의 커널 서비스에 의존하지 않습니다. 크래시 덤프를 기록하는 프로그램에서는 장애가 발생한 동안 시스템의 커널 또는 시스템의 어떤 부분이 손상되었는지에 대한 가정을 할 수 없기 때문입니다. 시스템의 커널은 페이지 파일의 섹터 맵에서 메모리의 데이터를 씁니다 (동시에 사용할 필요는 없습니다)  파일 시스템).

먼저 시스템 커널은 덤프 저장 프로세스와 관련된 각 구성 요소의 상태를 확인합니다. 디스크 섹터에 직접 쓸 때 파일 외부의 데이터가 손상되지 않도록하기 위해 수행됩니다. 파일 크기는 1이어야합니다 MB  정보가 기록 될 때 경보 서명과 시스템 코어의 가장 중요한 여러 변수의 값을 포함하는 헤더가 작성되기 때문에 실제 메모리 크기보다 큽니다. 제목이 1 미만입니다 MB운영 체제에서 페이징 파일의 크기를 1 이상으로 늘리거나 줄일 수 있습니다. MB.

시스템을 부팅 한 후 세션 관리자 (Windows NT 세션 관리자; 디스크 주소- WINDOWS \\ system32 \\ smss.exe)는 자체 파일을 생성하기 위해 자체 기능을 사용하여 시스템 파일을 초기화합니다 NtCreatePagingFile. NtCreatePagingFile  초기화 된 파일이 존재하는지 여부를 판별하고 존재하는 경우 헤더가 있습니까? . 제목이 있으면 NtCreatePagingFile  보낸다 세션 관리자  특수 코드. 그 후 세션 관리자  프로세스를 시작합니다 윈로 건 (Windows NT 로그온 프로그램; 디스크 주소- \\ WINDOWS \\ system32 \\ winlogon.exe), 긴급 상황이 있음을 알립니다 . 윈로 건  프로그램을 시작하다 저장된 덤프 (Windows NT 메모리 복사 유틸리티; 디스크 주소- WINDOWS \\ system32 \\ savedump.exe) 헤더를 구문 분석합니다   긴급 상황에서 다음에 수행 할 작업을 결정합니다.

제목이 존재를 나타내는 경우 그때 저장된 덤프  파일에서 이름이 지정된 비상 파일로 데이터를 복사합니다. REG_EXPAND_SZ매개 변수 덤프 파일  섹션 . 안녕 저장된 덤프  파일을 덮어 씁니다 운영 체제가 응급 상황이 포함 된 페이지 파일의 일부를 사용하지 않습니다. . 현재 시스템 및 응용 프로그램에 사용 가능한 가상 메모리의 크기가 줄어 듭니다.   동시에 가상 메모리 부족을 나타내는 메시지가 화면에 나타날 수 있습니다. 그런 다음 저장된 덤프  저장 완료를 메모리 관리자에게 알려줍니다 그는 그 부분을 풀어   저장된 파일 일반적인 사용을 위해.

파일 저장 프로그램 저장된 덤프  비상 사태의 발생을 기록   이벤트 로그에 예를 들면 다음과 같습니다. 메모리 사본이 저장되었습니다 : C : \\ WINDOWS \\ Minidump \\ Mini060309-01.dmp. "

전체 메모리 덤프  치명적인 오류가 발생했을 때 메모리의 전체 내용을 기록합니다. 이 옵션을 사용하려면 부트 볼륨에 스왑 파일이 있어야합니다. 크기는 모든 실제 RAM의 볼륨에 1을 더한 크기입니다. MB. 기본이 가득 찼습니다   메모리가 파일에 기록됩니다 % SystemRoot % \\ Memory.dmp. 새로운 오류가 발생하고 새로운 전체 파일이 생성 될 때    기억 (또는   커널 메모리) 이전 파일이 대체됩니다 (덮어 쓰기). 모수 전체 메모리 덤프  32 비트 운영 체제 및 2 개 이상의 RAM이 설치된 시스템에서는 사용할 수 없습니다.

새로운 오류가 발생하고 새로운 전체 파일이 생성 될 때   이전 파일의 메모리가 교체됩니다.

커널 메모리 덤프  커널 메모리 만 쓰므로 시스템이 갑자기 중지되면 로그에 데이터를 쓰는 프로세스가 더 빠릅니다. 실제 메모리 양에 따라  이 경우 스왑 파일에는 50 ~ 800이 필요합니다. MB  또는 부팅 볼륨에있는 물리적 메모리의 3 분의 1   커널 메모리가 파일에 기록됩니다 % SystemRoot % \\ Memory.dmp.

이거   할당되지 않은 메모리 나 모드 프로그램에 할당 된 메모리는 포함되지 않습니다. 커널에 할당 된 메모리와 하드웨어 종속 레벨 ( )에서 윈도우 2000  커널 모드 및 기타 커널 모드 프로그램에 할당 된 메모리뿐만 아니라 이후 버전의 시스템. 대부분의 경우   가장 선호되는 옵션입니다. 전체에 비해 훨씬 적은 공간을 차지합니다   오류와 관련이없는 메모리 섹터 만 제외하고 메모리

새로운 에러가 발생하여 새로운 파일이 생성 될 때   커널 메모리의 경우 이전 파일이 교체됩니다.

작은 메모리 덤프  문제의 원인을 파악하는 데 필요한 최소의 유용한 정보를 기록합니다. 작은 것을 만들려면   메모리에는 최소 2의 페이징 파일 크기가 필요합니다. MB  부팅 볼륨에서.

작은 파일   메모리에는 다음 정보가 포함됩니다.

-치명적인 오류, 매개 변수 및 기타 데이터에 대한 메시지;

-다운로드 목록;

-문맥 ( PRCB) 고장이 발생한 곳

프로세스) 오류의 원인이 된 프로세스

-프로세스 정보 및 커널 컨텍스트 ( ETHREAD) 오류가 발생한 스레드의 경우

-오류를 일으킨 스레드에 대한 커널 모드 호출 스택.

작은 파일 메모리는 제한된 하드 디스크 공간으로 사용됩니다. 그러나이 파일을 분석 한 결과 제한된 정보로 인해 발생시 스레드 실행으로 인해 직접 발생하지 않은 오류를 항상 감지 할 수있는 것은 아닙니다.

다음 오류가 발생하고 두 번째 작은 파일이 생성 된 경우   이전 파일이 저장됩니다. 각 추가 파일에는 고유 한 이름이 지정됩니다. 날짜는 파일 이름으로 인코딩됩니다. 예를 들어 미니 051509-01.dmp  첫 번째 파일입니다   2009 년 5 월 15 일에 생성 된 메모리. 모든 작은 파일 목록   메모리는 폴더에 저장됩니다 % 시스템 루트 % \\ 미니 덤프.

운영 체제 의심 할 여지없이 개발자로서의 노력 덕분에 이전 버전보다 훨씬 더 안정적 임 마이크로 소프트하드웨어 및 소프트웨어 개발자 . 그러나 모든 종류의 시스템 오류 및 충돌과 같은 긴급 상황은 불가피하며  제거에 대한 지식과 기술에 따라 오작동을 검색하고 수정하는 데 몇 분 (예 : 실패를 유발하는 응용 프로그램 업데이트 / 디버깅 또는 다시 설치) 또는 운영 체제 및 응용 프로그램 소프트웨어를 다시 설치 / 구성하는 데 몇 시간을 소비해야합니다   (이것은 미래에 실패와 충돌이 없음을 보장하지 않습니다!).

많은 관리자가 크래시 덤프 분석을 무시합니다 윈도우 그들과 함께 일하는 것이 너무 어렵다는 것을 고려하십시오. 어렵지만 가능합니다 : 예를 들어, 하나의 분석이라도   가장 간단한 비상 분석 방법을 익히기위한 노력 헛되지 않을 것입니다!

치명적인 오류 발생시 Windows 운영 체제가 중단되고 BSOD (Blue Screen of Death)가 표시됩니다. RAM의 내용과 발생한 오류에 대한 모든 정보가 페이지 파일에 기록됩니다. 다음에 Windows를 부팅 할 때 저장된 데이터를 기반으로 디버깅 정보가 포함 된 충돌 덤프가 생성됩니다. 시스템 이벤트 로그에 중요한 오류 레코드가 생성됩니다.

주의!  디스크 서브 시스템이 실패하거나 Windows 시작 초기 단계에서 심각한 오류가 발생하면 비상 덤프가 작성되지 않습니다.

Windows 크래시 덤프의 유형

현재 운영 체제 Windows 10 (Windows Server 2016)을 예로 사용하여 시스템이 만들 수있는 주요 유형의 메모리 덤프를 고려하십시오.

  • 미니 메모리 덤프 (256KB) 이 유형의 파일에는 최소한의 정보가 포함됩니다. BSOD 오류 메시지, 드라이버에 대한 정보, 충돌 당시 활성화 된 프로세스 및 충돌을 일으킨 프로세스 또는 커널 스레드 만 포함합니다.
  • 커널 메모리 덤프. 일반적으로 크기는 작습니다-물리적 메모리의 3 분의 1입니다. 커널 메모리 덤프는 미니 덤프보다 더 장황합니다. 여기에는 커널 모드의 드라이버 및 프로그램에 대한 정보가 포함되어 있으며 Windows 커널 및 HAL (하드웨어 추상화 계층)에 할당 된 메모리와 커널 모드의 드라이버 및 기타 프로그램에 할당 된 메모리가 포함됩니다.
  • 완전한 메모리 덤프. 볼륨이 가장 크며 시스템의 RAM에 1MB를 더한 메모리가 필요하며 이는 Windows가이 파일을 작성하는 데 필요합니다.
  • 자동 메모리 덤프. 정보면에서 코어 메모리 덤프에 해당합니다. 덤프 파일을 작성하는 데 사용하는 공간의 크기 만 다릅니다. 이 유형의 파일은 Windows 7에 존재하지 않았습니다. Windows 8에 추가되었습니다.
  • 활성 메모리 덤프. 이 유형은 시스템 장애의 원인을 판별 할 수없는 항목을 필터링합니다. 이것은 Windows 10에서 추가되었으며 가상 머신을 사용하거나 시스템이 Hyper-V 호스트 인 경우 특히 유용합니다.

Windows에서 메모리 덤프 생성을 활성화하는 방법은 무엇입니까?

Win + Pause를 사용하여 시스템 매개 변수가있는 창을 열고 " 추가 시스템 매개 변수"(고급 시스템 설정). "탭에서 선택 사항"(고급), 섹션" "(시작 및 복구) 버튼을 클릭하십시오" 매개 변수"(설정). 열리는 창에서 시스템 장애시 조치를 구성하십시오. 확인란에 daw를 넣습니다. " 시스템 로그에 이벤트 쓰기»(시스템 로그에 이벤트 쓰기) 시스템이 충돌 할 때 작성해야하는 덤프 유형을 선택하십시오. 확인란에 " 기존 덤프 파일 교체"(기존 파일 덮어 쓰기) 확인란을 선택하면 파일이 실패 할 때마다 파일을 덮어 씁니다. 이 daw를 제거하는 것이 좋습니다. 그러면 분석에 대한 추가 정보가 있습니다. 자동 재시작도 비활성화하십시오.

대부분의 경우 BSOD의 원인을 분석하기에 작은 메모리 덤프로 충분합니다.

이제 BSOD가 발생하면 덤프 파일을 분석하고 실패 원인을 찾을 수 있습니다. 기본 미니 덤프는 % systemroot % \\ minidump 폴더에 저장됩니다. 덤프 파일을 분석하려면 프로그램을 사용하는 것이 좋습니다 Windbg(Microsoft 커널 디버거).

Windows에서 WinDBG 설치

유틸리티 Windbg "에 포함 Windows 10 SDK"(Windows 10 SDK). .

파일이 호출됩니다 winsdksetup.exe크기는 1.3MB입니다.

설치를 실행하고 수행 할 작업을 선택하십시오.이 컴퓨터에 패키지를 설치하거나 다른 컴퓨터에 설치할 패키지를 다운로드하십시오. 로컬 컴퓨터에 패키지를 설치하십시오.

전체 패키지를 설치할 수 있지만 디버그 도구 만 설치하려면 Windows 용 디버깅 도구.

설치 후 WinDBG 단축키는 시작 메뉴에서 찾을 수 있습니다.

WinDBG와의 연관 .dmp 파일 설정

간단한 클릭으로 덤프 파일을 열려면 .dmp 확장명을 WinDBG 유틸리티와 연결하십시오.

  1. 관리자 권한으로 명령 프롬프트를 열고 64 비트 시스템에 대한 명령을 실행하십시오. cd C : \\ Program Files (x86) \\ Windows Kits \\ 10 \\ Debuggers \\ x64
    windbg.exe –IA
    32 비트 시스템의 경우 :
      C : \\ 프로그램 파일 (x86) \\ Windows 키트 \\ 10 \\ 디버거 \\ x86
    windbg.exe –IA
  2. 결과적으로 파일 형식 : .DMP, .HDMP, .MDMP, .KDMP, .WEW가 WinDBG에 매핑됩니다.

WinDBG에서 디버그 기호 서버 구성

디버그 기호 (디버그 기호 또는 기호 파일)는 실행 파일과 함께 프로그램을 컴파일하는 동안 생성 된 데이터 블록입니다. 이러한 데이터 블록에는 함수, 라이브러리 등의 변수 이름에 대한 정보가 포함됩니다. 이 데이터는 프로그램을 실행할 때 필요하지 않지만 디버깅 할 때 유용합니다. Microsoft 구성 요소는 Microsoft Symbol Server를 통해 배포 된 문자로 컴파일됩니다.

Microsoft Symbol Server를 사용하도록 WinDBG를 구성하십시오.

  • WinDBG를 엽니 다.
  • 메뉴로 이동 파일 –> 심볼 파일 경로;
  • Microsoft 웹 사이트에서 디버깅 기호를 다운로드하기위한 URL과 캐시를 저장하기위한 폴더를 포함하는 행을 작성하십시오. SRV * E : \\ Sym_WinDBG * http : //msdl.microsoft.com/download/symbols이 예에서 캐시는 폴더 E : \\ Sym_WinDBG에로드됩니다. 아무 것도 지정하십시오.
  • 변경 사항을 메뉴에 저장하십시오. 파일–>  WorkSpace를 저장하십시오.

WinDBG는 로컬 폴더에서 문자를 검색하고 필요한 문자를 찾지 못하면 지정된 사이트에서 자체적으로 문자를 다운로드합니다. 기호가있는 자신의 폴더를 추가하려면 다음과 같이하십시오.

SRV * E : \\ Sym_WinDBG * http : //msdl.microsoft.com/download/symbols; c : \\ 기호

인터넷에 연결되어 있지 않으면 먼저 Windows Symbol Packages 리소스에서 심볼 팩을 다운로드하십시오.

WinDBG에서 충돌 덤프 분석

WinDBG 디버거는 덤프 파일을 열고 로컬 폴더 나 인터넷에서 디버깅에 필요한 기호를 다운로드합니다. 이 과정에서는 WinDBG를 사용할 수 없습니다. 창의 맨 아래 (디버거 명령 행)가 나타납니다. 디버 미가 연결되지 않았습니다.

창의 맨 아래에있는 명령 행에 명령이 입력됩니다.

주의해야 할 가장 중요한 것은 항상 16 진 값으로 표시되고 형식이있는 오류 코드입니다. 0xXXXXXXXXX  (STOP :, 07/02/2019 0008F, 0x8F 옵션 중 하나로 표시됨). 이 예에서 오류 코드는 0x139입니다.

디버거는 명령 실행을 제안합니다 -v를 분석하고 링크 위로 마우스를 가져 가서 클릭하십시오. 이 명령은 무엇입니까?

  • 메모리 덤프의 예비 분석을 수행하고 분석을 시작하기위한 자세한 정보를 제공합니다.
  • 이 명령은 STOP 코드와 오류의 기호 이름을 표시합니다.
  • 충돌을 일으킨 명령 호출 스택을 보여줍니다.
  • 또한 IP 주소, 프로세스 및 레지스터 오작동이 여기에 표시됩니다.
  • 팀은 문제 해결을위한 기성품 권장 사항을 제공 할 수 있습니다.

Analyze –v 명령을 실행 한 후 분석 할 때주의해야 할 주요 사항 (목록이 불완전합니다).

1 : kd\u003e! 분석 -v


* *
* 버그 체크 분석 *
* *
*****************************************************************************
STOP 오류의 상징적 이름 (BugCheck)
  KERNEL_SECURITY_CHECK_FAILURE (139)
오류 설명 (커널 구성 요소가 중요한 데이터 구조를 손상 시켰습니다.이 손상으로 인해 침입자가이 컴퓨터를 제어 할 수 있습니다) :

커널 구성 요소가 중요한 데이터 구조를 손상 시켰습니다. 손상으로 인해 악의적 인 사용자가이 컴퓨터를 제어 할 수 있습니다.
오류에 대한 인수는 다음과 같습니다.

인수 :
Arg1 : 0000000000000003, LIST_ENTRY가 손상되었습니다 (즉, 이중 제거).
Arg2 : ffffd0003a20d5d0, 버그 검사를 유발 한 예외에 대한 트랩 프레임의 주소
Arg3 : ffffd0003a20d528, 버그 검사를 유발 한 예외에 대한 예외 레코드 주소
Arg4 : 0000000000000000, 예약
디버깅 세부 사항 :
------------------

카운터는 시스템이 비슷한 오류로 몇 번 충돌했는지 보여줍니다.

CUSTOMER_CRASH_COUNT : 1

DEFAULT_BUCKET_ID : FAIL_FAST_CORRUPT_LIST_ENTRY

축약 된 형식의 STOP 오류 코드 :

BUGCHECK_STR : 0x139

실행 중 오류가 발생한 프로세스 (메모리에서 오류가 발생한 시점에 오류가 발생한 것은 아님) :

PROCESS_NAME : sqlservr.exe

오류 코드 해독 :이 응용 프로그램에서 시스템은 스택 버퍼 오버플로를 감지하여 공격자가이 응용 프로그램을 제어 할 수 있습니다.

ERROR_CODE : (NTSTATUS) 0xc0000409-시스템이이 응용 프로그램에서 스택 기반 버퍼의 오버런을 감지했습니다. 이 오버런으로 인해 악의적 인 사용자가이 응용 프로그램을 제어 할 수 있습니다.
EXCEPTION_CODE : (NTSTATUS) 0xc0000409-시스템이이 응용 프로그램에서 스택 기반 버퍼의 오버런을 감지했습니다. 이 오버런으로 인해 악의적 인 사용자가이 응용 프로그램을 제어 할 수 있습니다.

스택의 마지막 호출 :

LAST_CONTROL_TRANSFER : fffff8040117d6a9에서 fffff8040116b0a0까지

실패시 호출 스택 :

STACK_TEXT :
ffffd000`3a20d2a8 fffff804`0117d6a9 : 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528 : nt! KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50 : ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2 : nt! KiBugCheckDispatch + 0x69
ffffd000`3a20d3f0 fffff804`0117c150 : 00000000`0000000000000000`00000000 00000000`00000000 00000000`00000000 : nt! KiFastFailDispatch + 0xd0
ffffd000`3a20d5d0 fffff804`01199482 : ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9 : nt! KiRaiseSecurityCheckFailure + 0x3d0
ffffd000`3a20d760 fffff804`014a455d : 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 : nt! ?? :: FNODOBFM ::`문자열 "+ 0x17252
ffffd000`3a20d8c0 fffff804`013a34ac : 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600 : nt! IopSynchronousServiceTail + 0x379
ffffd000`3a20d990 fffff804`0117d313 : ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380 : nt! NtWriteFile + 0x694
ffffd000`3a20da90 00007ffb`475307da : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt! KiSystemServiceCopyEnd + 0x13
000000ee`f25ed2b8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffb`475307da

오류가 발생한 코드 부분 :

FOLLOWUP_IP :
nt! KiFastFailDispatch + d0
fffff804`0117da50 c644242000 mov byte ptr, 0
FAULT_INSTR_CODE : 202444c6
SYMBOL_STACK_INDEX : 2
SYMBOL_NAME : nt! KiFastFailDispatch + d0
FOLLOWUP_NAME : MachineOwner

커널 오브젝트 테이블의 모듈 이름 분석기가 문제 드라이버를 감지 할 수 있으면 이름이 MODULE_NAME 및 IMAGE_NAME 필드에 표시됩니다.

MODULE_NAME : nt
IMAGE_NAME : ntkrnlmp.exe

1 : kd\u003e lmvm nt
  전체 모듈 목록 찾아보기
로드 된 심볼 이미지 파일 : ntkrnlmp.exe
매핑 된 메모리 이미지 파일 : C : \\ ProgramData \\ dbg \\ sym \\ ntoskrnl.exe \\ 5A9A2147787000 \\ ntoskrnl.exe
이미지 경로 : ntkrnlmp.exe
이미지 이름 : ntkrnlmp.exe
InternalName : ntkrnlmp.exe
OriginalFilename : ntkrnlmp.exe
제품 버전 : 6.3.9600.18946
파일 버전 : 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

위의 예에서 분석은 ntkrnlmp.exe 커널 파일을 가리 켰습니다. 메모리 덤프 분석이 시스템 드라이버 (예 : win32k.sys) 또는 커널 파일 (예 : ntkrnlmp.exe)을 가리키는 경우이 파일이 문제의 원인이 아닐 수 있습니다. 문제는 종종 장치 드라이버, BIOS 설정 또는 하드웨어 오류와 관련이 있습니다.

BSOD가 타사 드라이버로 인한 것으로 확인 된 경우 해당 이름은 MODULE_NAME 및 IMAGE_NAME 값으로 표시됩니다.

예를 들면 다음과 같습니다.

이미지 경로 : \\ SystemRoot \\ system32 \\ drivers \\ cmudaxp.sys
이미지 이름 : cmudaxp.sys

드라이버 파일의 속성을 열고 버전을 확인하십시오. 대부분의 경우 드라이버 문제는 업데이트하여 해결됩니다.

이 짧은 노트는 비상시 시스템을 구성 할 수있는 방법을 보여주기위한 것입니다. windows 메모리 덤프즉, 치명적 장애 발생시 생성 될 수있는 덤프로, BSOD (Blue Screen of Death)가 특징입니다. 일반적으로 덤프 란 무엇이며 왜 필요한지, 무엇이 필요한지, 어떤 문제를 해결해야하며 어떤 정보가 포함되어 있습니까?

메모리 덤프는 작업 공간 외에 프로세서 레지스터의 상태, 스택의 내용 및 기타 서비스 구조에 대한 추가 정보를 포함하여 프로세스, 커널 또는 전체 운영 체제의 작업 메모리 내용입니다.

이 콘텐츠가 필요한 이유, 즉 windows 메모리 덤프? 아마도 대부분의 경우 메모리 덤프는 시스템 장애 ()의 원인을 조사하는 데 사용되며 운영 체제가 완전히 종료되었습니다. 이 외에도 메모리 상태는 다른 목적으로 사용될 수 있습니다. 또한 메모리 덤프가 문자 그대로 모든 장애에 대한 정보를 얻는 유일한 방법 인 것도 중요합니다! 그리고 시스템 메모리 덤프를 제거 (수신)하는 것은 실제로 시스템의 실제 메모리 내용에 대한 즉각적인 지문 (복사)을 얻는 유일한 방법입니다.

덤프의 내용이 오류 발생시 메모리 상태를보다 정확하게 반영할수록 긴급 상황을 더 많이 분석 할 수 있습니다. 따라서 장애 직전에 엄격하게 정의 된 순간에 시스템의 실제 메모리 사본을 얻는 것이 매우 중요합니다. 이를 수행하는 유일한 방법은 메모리의 전체 크래시 덤프를 작성하는 것입니다. 그 이유는 시스템의 비상 메모리 덤프가 발생하는 경우 (실패의 결과이든 인공적으로 시뮬레이션 된 상황의 결과이든) 긴급 기능 제어 (KeBugCheckEx)를받는 순간의 시스템이 절대적으로 변경되지 않은 (정적) 상태에 있기 때문에 실패와 데이터가 매체에 기록 될 때 실제 메모리의 내용은 변경되지 않으며 원래 상태로 디스크에 기록됩니다. 글쎄, 이것은 이론상이며 때로는 인생에 있지만 하드웨어 구성 요소로 인해 메모리 덤프 자체가 손상되거나 덤프 기록 과정에서 스테이션이 정지되는 상황이 있습니다.

대부분의 경우 비상 메모리 덤프 생성 프로세스가 시작된 순간부터 메모리 내용이 디스크에 기록되는 순간까지 메모리의 정보는 변경되지 않습니다.

이론적으로 정적 (불변) 메모리 지문은 오류에 대한 정보를 표시하고 메모리 덤프 작성 프로세스를 시작하는 KeBugCheckEx 함수가 호출 될 때 시스템이 이미 완전히 중지되고 물리적 메모리의 내용이 디스크의 스왑 파일이 차지하는 블록에 기록되고, 그 후, 운영 체제의 후속로드 프로세스에서 이미 시스템 매체의 파일로 재설정됩니다. 글쎄, 거의 한 번 실패한 마더 보드에서 메모리 덤프를 저장할 수없는 상황을 관찰했습니다 .a) 작업 중 덤프 스토리지 논리를 동결 (프로세스가 100 %에 도달하지 못했습니다) ) 길이가 0 인 memory.dmp의 덤프 파일을 작성합니다. 따라서 메모리 덤프를 생성하는 시점의 시스템이 이미 완전히 중지되었고 비상 코드 만 작동 했음에도 불구하고 결함이있는 하드웨어는 모든 작업 단계에서 예외없이 모든 논리를 자체적으로 수정할 수 있습니다.
전통적으로 페이지 파일에 할당 된 디스크 블록은 Windows 메모리 덤프를 저장하는 데 사용됩니다. 그런 다음 블루 스크린 및 재부팅 후 데이터가 별도의 파일로 이동 한 다음 덤프 유형에 따라 템플릿에 따라 파일 이름이 바뀝니다. 그러나 Windows Vista 버전부터이 상태를 변경할 수 있습니다. 이제 사용자에게는 스왑 파일을 사용하지 않고 선택한 덤프를 저장할 수있는 기회가 주어지며 실패에 대한 정보는 임시 파일에 저장됩니다. 이는 페이지 파일의 크기 및 위치에 대한 잘못된 설정과 관련된 구성 오류를 제거하기 위해 수행되므로 메모리 덤프 저장 프로세스에서 종종 문제가 발생합니다.
  Windows 운영 체제로 어떤 종류의 덤프를 만들 수 있는지 살펴 보겠습니다.

  • 프로세스의 메모리 덤프 (애플리케이션)
  • 코어 메모리 덤프;
  • 전체 메모리 덤프 (시스템 실제 메모리의 사용 가능한 부분 덤프)

모든 크래시 덤프는 두 가지 주요 범주로 나눌 수 있습니다.

  • 예외 정보가있는 충돌 덤프. 일반적으로 응용 프로그램 / 커널에서 처리되지 않은 예외가 발생하면 시스템 (내장) 디버거를 호출 할 수있는 경우 자동 모드로 생성됩니다. 이 경우 예외에 대한 정보가 덤프에 기록되므로 예외 유형 및 후속 분석에서 발생 위치를 쉽게 확인할 수 있습니다.
  • 예외 정보가없는 충돌 덤프. 후속 분석을 위해 프로세스의 즉각적인 스냅 샷 만 작성해야하는 경우 일반적으로 사용자가 수동으로 작성합니다. 이 분석은 예외가 발생하지 않았기 때문에 예외 유형을 결정하는 것이 아니라 프로세스의 데이터 구조 등을 연구하는 등 완전히 다른 종류의 분석을 의미합니다.

커널 메모리 덤프 구성

이 섹션에 설명 된 작업을 수행하려면 관리 계정으로 로그인해야합니다.

Windows 크래시 덤프 설정 구성으로 직접 이동해 보겠습니다. 시작하려면 다음 방법 중 하나를 사용하여 시스템 속성 창으로 이동해야합니다.

  1. "내 컴퓨터"- "속성"- "고급 시스템 설정"- "고급"아이콘을 마우스 오른쪽 버튼으로 클릭하십시오.
  2. "시작"- "제어판"- "시스템"- "고급 시스템 설정"- "고급"버튼.
  3. 키보드 단축키 "Windows"+ "일시 정지"- "고급 시스템 설정"- "고급".

  4. 제어 시스템 .cpl, 3
  5. 명령 프롬프트 (cmd)에서 실행하십시오.
    시스템 속성 고급

설명 된 조치의 결과는 "시스템 특성"창을 열고 "고급"탭을 선택하는 것입니다.

그런 다음 "다운로드 및 복원"섹션에서 "옵션"을 클릭하여 "다운로드 및 복원"이라는 새 창을 엽니 다.

모든 크래시 덤프 매개 변수는 "시스템 오류"라는 매개 변수 블록으로 그룹화됩니다. 이 블록에서 다음 매개 변수를 설정할 수 있습니다.

  1. 시스템 로그에 이벤트를 기록하십시오.
  2. 자동 재부팅을 수행하십시오.
  3. 디버깅 정보를 기록하십시오.
  4. 덤프 파일.
  5. 기존 덤프 파일을 교체하십시오.

보시다시피, 목록의 많은 매개 변수는 매우 사소하고 이해하기 쉽습니다. 그러나 "덤프 파일"매개 변수에 대해 설명하겠습니다. 이 매개 변수는 드롭 다운 목록 형식으로 제공되며 네 가지 가능한 값이 있습니다.

작은 메모리 덤프

작은 메모리 덤프 (minidump, minidump)는 실패에 대한 정보가 가장 적은 파일입니다. 가능한 모든 메모리 덤프 중 가장 작은 것. 명백한 단점에도 불구하고, 추가 연구를 위해 타사 드라이버를 공급 업체에 전송하지 못한 것에 대한 정보로 사용되는 것은 종종 미니 덤프입니다.
  구성 :

  • 오류 메시지
  • 오류의 의미.
  • 오류 매개 변수.
  • 실패가 발생한 프로세서 컨텍스트 (PRCB).
  • 모든 스레드와 함께 실패를 일으키는 프로세스에 대한 프로세스 정보 및 커널 컨텍스트 (EPROCESS).
  • 실패를 일으키는 스레드에 대한 프로세스 정보 및 커널 컨텍스트 (ETHREAD).
  • 실패를 일으킨 스레드의 커널 모드 스택.
  • 로드 된 드라이버 목록

숙박 시설 : % SystemRoot % \\ 미니 덤프 \\ MMDDYY-XXXXX-NN.dmp. MMDDYY는 각각 월, 일 및 연도이며, NN은 덤프의 일련 번호입니다.
  볼륨 : 크기는 운영 체제의 비트 깊이에 따라 다릅니다. 스왑 파일 (또는 DedicatedDumpFile에 지정된 파일)의 32 비트에는 128KB, 64 비트 OS에는 256KB 만 필요합니다. 이러한 작은 크기를 설정할 수 없으므로 최대 1MB로 반올림합니다.

커널 메모리 덤프

이 유형의 덤프에는 충돌시 모든 커널 메모리의 사본이 포함됩니다.
  구성 :

  • 실행중인 프로세스 목록
  • 현재 스레드의 상태입니다.
  • 커널 모드 메모리 페이지는 충돌 당시 물리적 메모리에 존재합니다 : 커널 모드 드라이버 메모리 및 커널 모드 프로그램 메모리.
  • 하드웨어 의존 레벨 (HAL) 메모리.
  • 로드 된 드라이버 목록

커널 메모리 덤프에는 할당되지 않은 메모리 페이지 또는 사용자 모드 페이지가 없습니다. 일반적으로 시스템 충돌은 커널 모드 코드에 의해 트리거되기 때문에 시스템 충돌 (BugCheck) 중에 사용자 모드 프로세스 페이지가 관심을 가질 것 같지는 않습니다.

  볼륨 : 운영 체제에서 할당 한 커널 주소 공간의 크기와 커널 모드 드라이버 수에 따라 다릅니다. 일반적으로 스왑 파일 (또는 DedicatedDumpFile에 지정된 파일)에 물리적 메모리의 약 1/3이 필요합니다. 다를 수 있습니다.

완전한 메모리 덤프

전체 메모리 덤프에는 장애 발생시 모든 물리적 메모리 (RAM, RAM)의 사본이 포함됩니다. 따라서 시스템 메모리의 전체 내용도 파일에 저장됩니다. 많은 양의 RAM이있는 일부 서버의 크기가 상당히 클 수 있기 때문에 이는 장점이자 큰 단점입니다.
  구성 :

  • "보이는"물리적 메모리의 모든 페이지. 이것은 하드웨어가 사용하는 영역 (BIOS, PCI 공간 등)을 제외하고 실제로 시스템의 전체 메모리입니다.
  • 장애 발생시 시스템에서 실행중인 데이터를 처리하십시오.
  • 가상 주소 공간에 매핑되지 않았지만 오류의 원인을 조사하는 데 도움이되는 실제 메모리 페이지입니다.

기본적으로 BIOS에서 사용하는 물리적 메모리 영역은 전체 메모리 덤프에 포함되지 않습니다.
  위치 : % SystemRoot % \\ MEMORY.DMP. 이전 덤프를 덮어 씁니다.
  볼륨 : 페이징 파일 (또는 DedicatedDumpFile에 지정된 파일)에는 실제 메모리 크기 + 257MB와 동일한 크기가 필요합니다 (이 257MB는 특정 헤더 + 드라이버 데이터로 나뉩니다). 실제로 일부 운영 체제에서는 스왑 파일의 하위 임계 값을 실제 메모리 크기로 정확하게 설정할 수 있습니다.

자동 메모리 덤프

Windows 8 / Windows Server 2012부터는 "자동 메모리 덤프"라는 새로운 덤프 유형이 시스템에 도입되었으며 기본적으로 설정되어 있습니다. 이 경우 시스템 자체는 하나 이상의 장애 상황에서 쓸 메모리 덤프를 결정합니다. 또한, 선택의 논리는 운영 체제의 "낙하"빈도를 포함하여 많은 기준에 따라 다릅니다.

Windows 메모리 덤프 구성을 변경 한 후 컴퓨터를 다시 시작해야 할 수도 있습니다.

레지스트리 설정

크래시 덤프 매개 변수를 정의하는 레지스트리 키는 다음과 같습니다.

HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ 제어 \\ CrashControl

매개 변수 :

모수 타입 설명
   자동 재부팅   REG_DWORD BSOD가 발생할 때 자동 재부팅을 활성화 / 비활성화합니다.
   CrashDumpEnabled   REG_DWORD   작성중인 덤프 유형.
  • 0-메모리 덤프를 작성하지 마십시오.
  • 1-전체 메모리 덤프;
  • 2-코어 메모리 덤프;
  • 3-작은 메모리 덤프;
   덤프 파일   REG_EXPAND_SZ   코어 메모리 덤프 및 전체 메모리 덤프의 경로 및 이름
   덤프 필터   REG_MULTI_SZ   메모리 덤프 드라이버 스택의 드라이버 필터 비상 덤프 작성 단계에서 새 기능을 추가 할 수 있습니다. 예를 들어, 덤프 내용의 암호화 값을 변경하지 않는 것이 좋습니다.
   로벤 트   REG_DWORD   시스템 로그에 이벤트 쓰기
   미니 덤 디르   REG_EZPAND_SZ   작은 메모리 덤프의 경로와 이름
   미니 덤프 카운트   REG_DWORD   작은 메모리 덤프의 최대 수 초과하면 이전 버전을 덮어 쓰기 시작합니다.
   덮어 쓰기   REG_DWORD   기존 덤프 파일을 교체하십시오. 코어 메모리 덤프 및 전체 메모리 덤프에만 해당됩니다.
   페이지 파일 크기 무시   REG_DWORD   표준 스왑 파일을 메모리 덤프의 임시 (중간) 저장 장소로 무시합니다. 메모리 덤프를 별도의 파일에 기록해야 함을 나타냅니다. DedicatedDumpFile 옵션과 함께 사용됩니다.
   DedicatedDumpFile   REG_EZPAND_SZ   메모리 덤프를 작성하기위한 임시 대체 파일의 경로 및 이름 두 번째 단계에서 데이터는 여전히 DumpFile / MinidumpDir로 이동합니다.

수동 덤핑

위에서는 중대한 오류, 즉 커널 코드에서 처리되지 않은 예외가 발생할 경우 크래시 덤프를 자동으로 생성하기위한 설정에 대해 설명했습니다. 그러나 실제 운영 체제의 저하 외에도 특정 시점에 시스템 메모리 덤프를 가져와야하는 상황이 있습니다. 이 경우 어떻게해야합니까? WinDbg / LiveKD 디버거에서 .dump 명령을 사용하여 모든 물리적 메모리의 즉석 사본을 얻는 방법이 있습니다. LiveKD는 로컬 시스템의 작동 시스템에서 Kd 커널 디버거를 실행할 수있는 프로그램입니다. WinDbg 디버거도 비슷한 기능을 가지고 있습니다. 그러나 덤프를 작성하는 데 시간이 걸리기 때문에이 경우 "일관되지 않은"덤프가 작성되고 커널 모드 디버거를 사용하는 경우 시스템이 계속 작동하고 메모리 페이지를 변경하므로 온더 플라이 덤프 방법은 정확하지 않습니다.

이것을 공유하십시오