반응형

수동으로 언제든 간단하게 크래시를 발생시켜 블루 스크린이 뜨게 해 보자.

 

CrashOnCtrlScroll 키를 생성한다. (USB 키보드 사용)

PS/2 키보드의 경우 아래 경로에 키를 생성한다. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters

 

그리고 재부팅 후 원하는 순간에 (키보드 오른쪽에 있는)Ctrl키를 누르고 Scroll Lock키를 두 번 누른다.

 

블루 스크린이 뜬다. (중지 코드: MANUALLY_INITIATED_CRASH)

 

지정된 폴더에 메모리 덤프가 생성된다.

 

Windbg로 확인해 보면 매뉴얼 크래시가 표시된다.

 

※ 참고

Forcing a system crash from the keyboard

 

반응형
Posted by J-sean
:
반응형

실행중인 프로그램이 특정 조건을 만족하면 메모리 덤프 파일을 생성하도록 해 보자.

 

문제가 있는(메모리 덤프를 생성할) 프로그램을 미리 실행시킨다.

 

Procdump.zip
0.70MB

위 파일을 다운로드하고 압축을 푼다.

 

ProcDump 폴더로 이동한다.

 

'procdump 프로세스명' 으로 실행하면 바로 미니 덤프를 생성한다.

 

 

미니 덤프가 생성되었다.

 

'-ma -c 20 -s 5' 옵션을 주고 실행한다.

-ma: 전체 덤프 생성

-c: 덤프 생성 CPU 사용율 임계값

-s: 덤프 생성 조건 연속 시간

= CPU 사용율이 20%이상으로 5초 지속되면 전체 덤프 파일을 생성한다.

 

CPU 사용률이 20%를 넘기자 카운트가 시작되고 5초 후 전체 덤프 파일이 생성된다.

 

전체 덤프 파일이 생성되었다.

 

 

덤프 파일을 분석하면 어디서 문제가 발생하는지 파악할 수 있다.

 

이번엔 '-ma -t' 옵션으로 실행한다.

-t: 프로세스가 종료되면 덤프 파일을 생성한다. (크래시 발생으로 비정상 종료되어도 덤프 파일 생성)

 

프로세스가 종료되자 전체 덤프 파일이 생성된다.

 

전체 덤프 파일이 생성되었다.

 

※ 참고

ProcDump

 

반응형
Posted by J-sean
:
반응형

응용 프로그램이 비정상 종료하는 경우 덤프 파일을 생성하도록 해 보자.

 

응용 프로그램 크래시 발생시 자동으로 에러 리포트가 작성된다. 하지만 문제 파일, 운영체제 등의 정보만 들어 있어 별 의미가 없다.

 

크래시 발생시 덤프할 파일명으로 레지스트리 키를 만든다.

 

Value Description Type Default Value
DumpFolder 덤프 파일 생성 폴더 REG_EXPAND_SZ %LOCALAPPDATA%\CrashDumps
DumpCount 폴더에 보관할 덤프파일 갯수 REG_DWORD 10
DumpType 덤프 타입
1: 미니 덤프
2: 전체 덤프
RED_DWORD 1

 

응용 프로그램 크래시가 발생하면 레지스트리에 설정한 대로 덤프 파일이 생성된다.

 

위 내용은 응용 프로그램마다 개별적으로 적용하는 경우이고 ...\Windows Error Reporting\LocalDumps 레지스트리에 키 값을 만들어주면 모든 프로그램에 대해 동일한 덤프 세팅을 적용할 수 있다. 기본적으로 C:\Users\XXXX\AppData\Local\CrashDumps에 덤프 파일이 생성되도록 설정되어 있다.

 

※ 참고

Collecting User-Mode Dumps

 

반응형
Posted by J-sean
:
반응형

Windbg로 분석할 수 있도록 덤프 파일을 생성해 보자.

 

디버깅 정보 쓰기 - '커널/전체 메모리 덤프'가 선택되어 있어야 한다.

 

NotMyFault.zip
1.40MB

위 파일을 다운로드하고 압축을 풀어준다.

 

컴퓨터 환경에 맞는 파일을 실행한다.

 

크래시 발생 옵션을 선택하고 Crash 버튼을 클릭한다.

Crash 버튼을 클릭하면 블루 스크린이 나타나고 재부팅 되니 열려있는 작업은 모두 종료한다.

 

메모리 덤프가 생성된다.

 

※ 참고

Generate a kernel or complete crash dump

 

반응형
Posted by J-sean
:
반응형

유저 모드 애플리케이션이 충돌한 후 덤프를 수집하고 저장하도록 해 보자.

 

위와 같이 레지스트리 값을 작성한다. DumpType 만 작성하고 나머지는 기본값을 사용했다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

Value Description Type Default value
DumpFolder 덤프 파일을 저장할 경로 REG_EXPAND_SZ %LOCALAPPDATA%\CrashDumps
DumpCount 폴더의 최대 덤프 파일 수 REG_DWORD 10
DumpType 다음 덤프 유형 중 하나
0: 사용자 지정 덤프
1: 미니 덤프
2: 전체 덤프
REG_DWORD 1
CustomDumpFlags 사용할 사용자 지정 덤프 옵션. 이 값은 DumpType 이 0으로 설정된 경우에만 사용. REG_DWORD  

 

애플리케이션이 충돌하면 덤프 파일이 생성된다.

 

※ 참고

Collecting User-mode dumps

 

반응형
Posted by J-sean
: