윈도우 서버 Apache dump 파일 디버깅 방법

윈도우 서버 Apache dump 파일 디버깅 방법

Info
클라우독 2022년 상/하반기 이전 구 버젼 : 해당 있음.
클라우독 2022년 하반기 이후 신 버젼 :  해당 있음.

개요

윈도우 서버의 프로세스가 크래시 될 경우 덤프 파일을 생성할 수 있습니다.
본 아이클에서는 Apache가 크래시 될 경우의 덤프 파일 생성 방법과 생성된 덤프 파일을 분석하는 방법을 설명합니다.

덤프파일 생성 설정

1.   레지스트리 편집기를 엽니다.

   ① Win + R 키를 눌러 실행 명령 상자를 엽니다.

   ② 실행 창에 regedit를 입력하고 Enter 키를 누르십시오.

2.   Windows Error Reporting 키를 백업합니다.

   ① HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\로 이동합니다.

   ② Windows Error Reporting 키를 마우스 오른쪽 버튼으로 클릭합니다.

   ③ 내보내기를 선택하고 .reg 파일을 데스크탑에 저장합니다.

   

3.   LocalDumps 키 생성

   ① HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting으로 이동합니다.

   ② Windows Error Reporting 키를 선택하고, 아직 없는 경우 LocalDumps 라는 새 키를 생성합니다:

   ③ Windows Error Reporting 키를 마우스 오른쪽 버튼으로 클릭합니다.

   ④ 새로 만들기 및 키를 차례대로 선택합니다.

   ⑤ 키 이름을 LocalDumps로 지정합니다.

 

4.   LocalDumps 키에 레지스트리 값을 생성합니다.
  1. DumpFolder 레지스트리 값
      ① 오른쪽의 빈 영역을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > 확장 가능 문자열 값을 선택합니다.

      ② 이름을 DumpFolder로 지정합니다.

      ③ 이 값을 더블 클릭하고 값 데이터 필드에 %LOCALAPPDATA%\CrashDumps를 입력하십시오.
  1. DumpCount 레지스트리 값
      ① 오른쪽의 빈 영역을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > DWORD(32비트) 값을 선택합니다.

      ②이름을 DumpCount로 지정합니다.

      ③ 이 값을 더블 클릭하고 값 데이터 필드에 10을 입력합니다.
  1. DumpType 레지스트리 값
      ① 오른쪽의 빈 영역을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > DWORD(32비트) 값을 선택합니다.

      ② 이름을 DumpType으로 지정합니다.

      ③ 이 값을 더블 클릭하고 값 데이터 필드에 2를 입력합니다.
     
5.  서버를 재부팅합니다.

덤프파일 분석 방법

1.     WinDbg Preview App 다운로드 페이지로 접속하여 설치를 진행합니다.   


설치 URL: https://apps.microsoft.com/store/detail/windbg-preview/9PGJGD53TN86?hl=ko-kr&gl=kr&rtc=1

2.    설치가 완료되면 WinDbg Preview App을 통해 아파치 덤프 파일을 실행합니다.   


3.     App이 실행되면 [파일] - [Settings] - [Debugging settings] 메뉴를 클릭합니다.

4.     디버깅에 필요한 정보를 설정합니다.

   

①      Source path: 소스 파일이 존재하는 실제 경로를 입력해준다.

예) D:\Source\Repos\server-engine\ServerEngine_docsecure

②      Symbol path: mod_plusdrive.so 모듈, pdb 파일 위치를 입력해준다.

예) mod_plusdrive.so 모듈 위치: C:\www\Apache24_x64\modules

예) pdb 파일 위치: D:\Source\Repos\server-engine\ServerEngine_docsecure \x64\UTF8 Release Apache2_4

5.     Command 창에서 !analyze -v를 클릭하거나 입력합니다.  


6.     Command 창에서 오류가 발생한 코드 위치 등의 결과를 확인하여 분석합니다.