자동 프로세스 종료 모니터링
Windows 7부터 GFlags의 자동 프로세스 종료 탭을 사용하여 자동 종료를 모니터링하려는 프로세스의 이름을 입력할 수 있습니다.
이 모니터링 기능의 컨텍스트에서 자동 종료 라는 용어는 모니터링된 프로세스가 다음 방법 중 하나로 종료됨을 의미합니다.
자체 종료
모니터링되는 프로세스는 ExitProcess를 호출하여 자체 종료됩니다.
프로세스 간 종료
두 번째 프로세스는 TerminateProcess를 호출하여 모니터링되는 프로세스를 종료합니다.
모니터링 기능은 프로세스의 마지막 스레드가 종료될 때 발생하는 정상적인 프로세스 종료를 검색하지 않습니다. 모니터링 기능은 커널 모드 코드에서 시작하는 프로세스 종료를 검색하지 않습니다.
자동 종료 모니터링 프로세스를 등록하려면 GFlags에서 자동 프로세스 종료 탭을 엽니다. 프로세스 이름을 이미지 로 입력하고 Tab 키를 누릅니다. 자동 프로세스 종료 모니터링 사용 확인란을 선택하고 적용을 선택합니다. 그러면 다음 레지스트리 항목에서 FLG_MONITOR_SILENT_PROCESS_EXIT 플래그가 설정됩니다.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ProcessName\GlobalFlag
이 플래그에 대한 자세한 내용은 자동 프로세스 종료 모니터링 사용을 참조하세요.
GFlags에서 자동 프로세스 종료 탭을 사용하는 방법에 대한 자세한 내용은 자동 프로세스 종료 모니터링 구성을 참조하세요.
GFlags의 자동 프로세스 종료 탭에서 모니터링된 프로세스가 자동으로 종료될 때 수행되는 작업을 구성할 수 있습니다. 알림, 이벤트 로깅 및 덤프 파일 만들기를 구성할 수 있습니다. 자동 종료가 감지될 때 시작될 프로세스를 지정할 수 있으며 모니터에서 무시할 모듈 목록을 지정할 수 있습니다. 이러한 설정 중 일부는 전역적으로 사용할 수 있으며 개별 애플리케이션에 사용할 수 있습니다. 전역 설정은 자동 종료 모니터링을 위해 등록하는 모든 프로세스에 적용됩니다. 애플리케이션 설정은 개별 프로세스에 적용되며 전역 설정을 재정의합니다.
전역 설정은 다음 키 아래에 레지스트리에 저장됩니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit
애플리케이션 설정은 다음 키 아래의 레지스트리에 저장됩니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\ProcessName
보고 모드
보고 모드 설정은 애플리케이션 설정으로 사용할 수 있지만 전역 설정으로는 사용할 수 없습니다. 다음 검사 상자를 사용하여 보고 모드를 설정할 수 있습니다.
시작 모니터 프로세스덤프 수집 사용알림ReportingMode 레지스트리 항목은 다음 플래그의 비트 OR입니다.
플래그 | 값 | 의미 |
---|---|---|
LAUNCH_MONITORPROCESS | 0x1 | 자동 종료가 감지되면 모니터 프로세스 상자에 지정된 모니터 프로세스가 시작됩니다. |
LOCAL_DUMP | 0x2 | 자동 종료가 감지되면 모니터링되는 프로세스에 대한 덤프 파일이 만들어집니다. 교차 프로세스 종료의 경우 종료를 발생시킨 프로세스에 대한 덤프 파일도 만들어집니다. |
NOTIFICATION | 0x4 | 자동 종료가 감지되면 팝업 알림이 표시됩니다. |
자체 종료 무시
자체 종료 무시 설정은 애플리케이션 설정으로 사용할 수 있지만 전역 설정으로는 사용할 수 없습니다. 자체 종료 무시 검사 상자를 사용하여 자체 종료가 무시되는지 여부를 지정할 수 있습니다.
IgnoreSelfExits 레지스트리 항목에는 다음 값 중 하나가 있습니다.
값 | 의미 |
---|---|
0x0 | 자체 종료 및 프로세스 간 종료를 검색하고 응답합니다. |
0x1 | 자체 종료를 무시합니다. 프로세스 간 종료를 검색하고 응답합니다. |
프로세스 모니터링
프로세스 모니터링 텍스트 상자에 명령줄 매개 변수와 함께 프로세스 이름을 입력하여 모니터 프로세스를 지정할 수 있습니다. 명령줄에서 다음 변수를 사용할 수 있습니다.
Varaible | 의미 |
---|---|
%e | 종료 프로세스의 ID입니다. 이 프로세스는 자동으로 종료되는 모니터링 프로세스입니다. |
%i | 시작 프로세스의 ID입니다. 자체 종료의 경우 종료 프로세스와 동일합니다. 프로세스 간 종료의 경우 종료를 발생시킨 프로세스의 ID입니다. |
%t | 시작 스레드의 ID입니다. 종료를 발생시킨 스레드입니다. |
%c | ExitThread 또는 TerminateThread에 전달된 상태 코드입니다. |
예를 들어 모니터 프로세스 에 대한 다음 값은 자동 종료에서 WinDbg가 시작되고 종료 프로세스에 연결되도록 지정합니다.
windbg -p %e
Monitor Process 명령줄은 MonitorProcess 레지스트리 항목에 저장됩니다.
덤프 폴더 위치
덤프 폴더 위치 텍스트 상자를 사용하여 자동 종료가 감지될 때 작성된 덤프 파일의 위치를 지정할 수 있습니다.
덤프 폴더 위치에 입력하는 문자열은 LocalDumpFolder 레지스트리 항목에 저장됩니다.
덤프 폴더 위치를 지정하지 않으면 덤프 파일이 %TEMP%\Silent Process Exit인 기본 위치에 기록됩니다.
덤프 폴더 크기
덤프 폴더 크기 텍스트 상자를 사용하여 덤프 폴더에 쓸 수 있는 최대 덤프 파일 수를 지정할 수 있습니다. 이 값을 10진수 정수로 입력합니다.
덤프 폴더 크기에 대해 입력하는 값은 MaxNumberOfDumpFiles 레지스트리 항목에 저장됩니다.
기본적으로 쓸 수 있는 덤프 파일은 10개로 제한됩니다.
덤프 유형
덤프 유형 드롭다운 목록을 사용하여 자동 종료가 검색될 때 기록되는 덤프 파일 유형(Micro, Mini, Heap 또는 Custom)을 지정할 수 있습니다.
덤프 형식은 dumpType 레지스트리 항목에 저장됩니다. 이 항목은 MINIDUMP_TYPE 열거형 멤버의 비트 OR입니다. 이 열거형은 디버깅 도구 for Windows 패키지에 포함된 dbghelp.h에 정의되어 있습니다.
예를 들어 Micro의 덤프 유형을 선택했고 DumpType 레지스트리 항목에 값이 0x88 있다고 가정합니다. 0x88 값은 다음 두 MINIDUMP_TYPE 열거형 값 중 비트 OR입니다.
MiniDumpFilterModulePaths: 0x00000080
MiniDumpFilterMemory: 0x00000008
사용자 지정 덤프 유형을 선택하는 경우 사용자 지정 덤프 유형 상자에 MINIDUMP_TYPE 열거형 값의 비트 OR을 입력합니다. 이 값을 10진수 정수로 입력합니다.
모듈 목록 무시
모듈 목록 무시 상자를 사용하여 자동 종료가 검색될 때 무시되는 모듈 목록을 지정할 수 있습니다. 모니터링된 프로세스가 이 목록의 모듈 중 하나에 의해 종료되면 자동 종료는 무시됩니다.
모듈 무시 목록 상자에 입력하는 모듈 목록은 ModuleIgnoreList 레지스트리 항목에 저장됩니다.
이벤트 뷰어 프로세스 종료 보고서 읽기
모니터링된 프로세스가 자동으로 종료되면 모니터는 이벤트 뷰어 항목을 만듭니다. 이벤트 뷰어 열려면 eventvwr.msc 명령을 입력합니다. Windows 로그 애플리케이션으로 >이동합니다. 프로세스 종료 모니터 원본이 있는 로그 항목을 찾습니다.