2011. 11. 18. 14:21

크래시 덤프 분석 체크리스트

메모리 덤프를 체크하기 위한 체크사항들을 나열합니다.

* 애플리케이션 크래시나 행
  ◆ 기본 분석(!analyze -v, 행의경우에 !analyze -v -hang)
  ◆ 크래시와 해으 모두의 경우에 크리티컬세션(!locks)
  ◆ 컴포넌트 타임스탬프, DLL
  ◆ 프로세스 스레드(~*kv나 !uniqstack)
  ◆ 프로세스 가동 시간
  ◆ 문제 스레드의 전체로 스텍raw stack에 있는 자신의 컴포넌트
  ◆ 메인 애플리케이션 스레드의 전체로 스택에 있는 자신의 컴포넌트
  ◆ 프로세서 크기
  ◆ 스레드 개수
  ◆ Gfalgs 값(!gflag)
  ◆ 스레드에 의한 시간 소비(!runaway)
  ◆ 환경(!peb)
  ◆ 임포트 테이블(!dh)
  ◆ 훅킹된 함수(!chkimg)
  ◆ 예외 핸들러(!exchain)
 

* 시스템행
  ◆ 기본 분석(!analyze -v hang)
  ◆ ERESOURCE 경합(!locks)
  ◆ 세션 공간을 포함하는 프로세서와 가상 메모리(!vm 4)
  ◆ 풀(!poolused)
  ◆ 대기중인 스레드(!stacks)
  ◆ 크리티컬 시스템 큐(!exqueue f)
  ◆ I/O(!irpfind)
  ◆ 모든 스레드 스택 트레이스(W2k3/XP/비스타는 !process 0 ff, 윈도우 2000은 ListProcessStacks 스트립트)
  ◆ 의심스런 스레드에 대한 LPC 체인(!lpc message)
  ◆ 의심스런 프로세스에 대한 크리티컬 섹션(!ntsdexts.locks)
  ◆ 세션, 세션 프로세스(!session, !sprocess)
  ◆ 프로세스(크기, 핸들 테이블 크기)(!procsss 0 0)
  ◆ 실행중인 스레드(!running)
  ◆ DPC 큐(!dpcs)
  ◆ APC 리스트(!apc)

* BSOD
  ◆ 기본분석( !analyze -v)
  ◆ 풀 주소(!pool)
  ◆ 컴포넌트 타임스탬프
  ◆ 프로세스와 가상 메모리(!vm 4)
  ◆ 다른 프로세서상의 현재 스레드
  ◆ 로 스텍 raw stack
  ◆ 버그체크 설명 (손상되거나 잘린 덤프에 대한 예외 주소 포함)