태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Windows Mini Dump 분석하기

IT/Windows|2011. 4. 7. 16:05

windbg 를 이용하여 mini dump 를 분석 하는 방법입니다.. 
windbg 는 http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx 에서 받을수 있습니다..


 site 에 접속 하셔서 "Download Debugging Tools form the Windows SDK" 를 눌러서 다운을 받습니다.

 
다운받아서 실행을 하면 .NET Framework 에 대한 내용이 나오는데 확인을 누릅니다.

 
이제 Windwos SDK 를 시작 합니다.. 여기서는 그냥 Next 를 눌러 넘어 갑니다..


뭐 읽을만한건 아니니 그냥 동의 하고 Next 로 넘어 갑니다..
아래부터는 그냥 있는데로 하고 그냥 넘기시면 됩니다.. Next 신공!!!


여기까지 하면 설치가 완료 됩니다.. 이제 windbg 를 실행해 봅니다..

 
별거 없습니다 ^^ 이제 File -> Open Crash Dump 를 눌러서 mini dump 를 열어 봅니다..

 

 
여기서 추가로 Symbol 을 지정해줘야 하는데 http://msdn.microsoft.com/en-us/windows/hardware/gg463028 에 가셔서 Symbol Package 를 다운 받아서 사용 합니다..

역시 Next 신공으로 그냥 설치 하시면 됩니다.


다시 windbg 로 돌아와서 Symbol Path 를 지정해 줍니다.. FIle -> Symbol File Path 를 선택 하십니다.


위처럼 Symbol Path 를 지정해 주시면 됩니다..

다시 돌아 오셔서 .reload /f 를 해주시면 필요한 symbol 을 알아서 찾습니다.. 

그리고 !analyze -v 를 치시면 자세한 정보가 나오게 되는데 왜 시퍼런 화면을 보이면서 panic 을 맞았는지 찾을수 있을겁니다..

symbol 파일을 잘 못찾을 때가 있는데 !sym noisy 를 치시면 자세한 log 를 보실수 있습니다.

1: kd> !sym noisy
noisy mode - symbol prompts on
1: kd> .reload
DBGHELP: C:\Program Files\Debugging Tools for Windows (x86)\ntoskrnl.exe - file not found
DBGHELP: ntoskrnl.exe not found in d:\symbols
DBGHELP: C:\Program Files\Debugging Tools for Windows (x86)\ntkrnlup.exe - file not found
DBGHELP: ntkrnlup.exe not found in d:\symbols
DBGHELP: C:\Program Files\Debugging Tools for Windows (x86)\ntkrnlpa.exe - file not found
DBGHELP: ntkrnlpa.exe not found in d:\symbols
DBGHELP: C:\Program Files\Debugging Tools for Windows (x86)\ntkrnlmp.exe - file not found
DBGHELP: ntkrnlmp.exe not found in d:\symbols
DBGHELP: C:\Program Files\Debugging Tools for Windows (x86)\ntkrpamp.exe - file not found
DBGHELP: ntkrpamp.exe not found in d:\symbols
DBGENG:  ntoskrnl.exe - Image mapping disallowed by non-local path.
Unable to load image ntoskrnl.exe, Win32 error 0n2


예전 노트북에 있엇던 mini dump 인데.. cpu 문제였었습니다.. a/s 기사한테 말했지만 통 믿지 않고 하드 디스크, 메인보드, 메모리 등등 교체 하는데 한달을 소비 해서 그냥 환불 받았었습니다.. ^^;;

아래는 symbol 파일을 제대로 못 가져왔는데.. 하튼 그랬었습니다.. ^^;;

1: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred. Parameter 1 identifies the type of error
source that reported the error. Parameter 2 holds the address of the
WHEA_ERROR_RECORD structure that describes the error conditon.
Arguments:
Arg1: 00000000, Machine Check Exception
Arg2: 866481ec, Address of the WHEA_ERROR_RECORD structure.
Arg3: 00000000, High order 32-bits of the MCi_STATUS value.
Arg4: 00000000, Low order 32-bits of the MCi_STATUS value.

Debugging Details:
------------------

***** Kernel symbols are WRONG. Please fix symbols to do analysis.

ADDITIONAL_DEBUG_TEXT:  
Use '!findthebuild' command to search for the target build information.
If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols.

FAULTING_MODULE: 8300d000 nt

DEBUG_FLR_IMAGE_TIMESTAMP:  0

BUGCHECK_STR:  0x124_GenuineIntel

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

CURRENT_IRQL:  0

STACK_TEXT:  
WARNING: Stack unwind information not available. Following frames may be wrong.
80eadcc4 830d01c5 866481d0 8316af88 8316af80 nt+0x316f63
80eadce4 830d0fe1 8316af80 866481d0 8316afb0 nt+0xc31c5
80eadd00 83068043 8316af80 00000000 8501f918 nt+0xc3fe1
80eadd50 831f4d16 00000001 9d4d6173 00000000 nt+0x5b043
80eadd90 83096159 83067f36 00000001 00000000 nt+0x1e7d16
00000000 00000000 00000000 00000000 00000000 nt+0x89159


STACK_COMMAND:  kb

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: hardware

IMAGE_NAME:  hardware

BUCKET_ID:  WRONG_SYMBOLS

Followup: MachineOwner
---------


메뉴에서 View -> Call Stack 을 선택 하시면 stack 정보를 확인할수 있습니다.. 그밖에 여러가지를 볼수 있으니 확인해 보세요
MODULE_NAME 을 확인하시고 lmvm(l : load m:moudle v:verbose m:patter match) 으로 module 를 load 할수 있습니다.

Stack 등을 확인하시고 문제가 되는 모듈을 찾으신후에 문제를 fix 하실수 있을겁니다. 

이건 그냥 참고사마.. ^^

http://vista.tutorialref.com/windbg-minidump-tutorial.html

댓글()