ohyecloudy http://ohyecloudy.com
아꿈사 http://cafe.naver.com/architect1.cafe

                               2009.10.17
고객의 정책, 환경 문제로 실시
간 접근이 불가능 할 때

실패 시점에 시스템 상태 스냅
샷을 만들어서 분석한다.
 덤프 파일
덤프 파일 기본
덤프 파일 생성
덤프 파일 사용
윈도우 오류 보고
덤프 파일 종류
풀full 덤프
  프로세서 실행 이미지
  핸들 테이블
  디버거가 사용하는 기타정보
  데이터 양을 조절할 수 없다.


미니mini 덤프
  커스터마이즈가 가능하다.
덤프 파일 생성 툴
- 윈도우 디버거
- ADPlus
- WER Window Error Report
- CER Corporate Error Reporting
덤프 파일 기본
 덤프 파일 종류, 생성 툴


덤프 파일 생성
덤프 파일 사용
윈도우 오류 보고
void __cdecl wmain()
{
         WCHAR* pszTitle=L”Advanced Windows Debugging”;

        wprintf(L”Press any key to startn”);
        WCHAR* pBuffer=(WCHAR*)new WCHAR[wcslen(pszTitle)+1];
        if (pBuffer)
        {
                 StringCchCopy(
                          pBuffer, wcslen(pszTitle)+1, pszTitle);
                 wprintf(L”Title: %sn”, pBuffer);

                 pBuffer = NULL;
                 *pBuffer = ‘0’;
        }
        else
        {
                 wprintf(L”Failed to allocate memoryn”);
        }

        wprintf(L”Press any key to endn”);
        __getch();
}
덤프 파일 생성, 로드

                   데모
덤프 파일 생성 스크릮캐스트 : http://screencast.com/t/nkXLVNjv
생성한 덤프 로드 스크릮캐스트 : http://screencast.com/t/QRL0uDMgY
포스트모템 디버거
프로세스가 크래시될 때마다
윈도우가 디버거를 사용해
덤프 파일을 생성하게 하는 메커니즘
포스트모템 디버거 설정
HKEY_LOCAL_MACHINE
 Software
  Microsoft
   Windows NT
    CurrentVersionAeDebug

windbg.exe –p %ld –e %ld –g
  -p %ld : 연결할 프로세스
  -e %ld : 연결이 완료될 때 시그널되는 이벤트
  -g : 연결할 때 발생하는 최초 디폴트 중단점을 무시
VS JIT 디버거
ADPlus
adplus.vbs -crash -pn awdscenario1.exe -y
SRV*c:Symbols*http://msdl.microsoft.com/download/symbols
ADPlus(계속)
자동으로 덤프 파일 생성.
 FullOnFirst
 MiniOnSecond
 NoDumpOnFirst
 NoDumpOnSecond
커널덤프
제어판 > 시스템 > 고급 > 시작 및 복구
커널 덤프 종류
젂체 메모리 덤프
 - 모든 물리 메모리 포함
 - 젂체 RAM보다 1MB 큰 파일을 저장할 공간 필
   요
커널 메모리 덤프
 - 시스템 물리 메모리 1/3
 - 윈도우 커널, HAL, 커널 모드 드라이버…
작은 메모리 덤프minidump
 - 64KB, 덤프 파일 공간이 제한되어 있을 때 유용.
 - 프로세서 컨텍스트, 커널 컨텍스트, 호출 스택…
수동으로 크래시 덤프 파일 생성
HKEY_LOCAL_MACHINE
 system
  CurrentControlSet
   Services
    i8042prtParameters
     <CrashOnCtrlScroll, REG_DWORD 0x1>

오른쪽 CTRL + SCROLL LOCK을 두번 누르면
크래시
  PS2 키보드
덤프 파일 기본
 덤프 파일 종류, 생성 툴

덤프 파일 생성
 덤프 생성 데모, 포스트모템 디버거, ADPlus, 커널 덤프


덤프 파일 사용
윈도우 오류 보고
덤프 파일 분석 :
        접근 위반, 핸들 누수

                    데모
접근 위반 분석 스크릮캐스트 : http://screencast.com/t/3j1AEyix5J0
핸들 누수 덤프 생성 스크릮캐스트 : http://screencast.com/t/EfQReO9n
핸들 누수 덤프 분석 스크릮캐스트 : http://screencast.com/t/5mYX8tscYG
덤프 파일 기본
 덤프 파일 종류, 생성 툴

덤프 파일 생성
 덤프 생성 데모, 포스트모템 디버거, ADPlus, 커널 덤프

덤프 파일 사용
 접근 위반, 핸들 누수 덤프 파일 분석 데모


윈도우 오류 보고
Dr.Watson
WER Window Error Report 서비스에 보낼 수 있는
오류 보고 정보를 생성
  -   예외 섹션
  -   시스템 정보
  -   작업 목록
  -   모듈 목록
  -   쓰레드 상태 덤프
  -   스택 역추적
  -   로raw 스택 덤프
윈도우 오류 보고 아키텍처
                                사용자
                           프로세스 X가 크래시
                           Dr.Watson UI 표시
                           “보내기”를 클릭




                           크래시 데이터


                                       폴트 대응
                                     WER
 피드백 루프로 사용할 수 있는 수정을 제공
                             크래시 데이터를 관리
ISV                        (질의, 피드백 루프 제공…)

      크래시 데이터가 있는지 주기적으로 질의
윈도우 오류 보고
크래시 덤프 및 오류 보고를 대신 수집,
관리해준다.

등록 젃차
 - 사용자 계정, 회사 계정 생성
 - 무료

책 664 참고
기업 오류 보고
오류 보고를 지역적으로 보관할 수 있다.
 - MS로 덤프, 오류 보고를 선택해서 보낼 수 있다.
 - 보안에 민감한 부분


책 683 참고
덤프 파일 기본
 덤프 파일 종류, 생성 툴

덤프 파일 생성
 덤프 생성 데모, 포스트모템 디버거, ADPlus, 커널 덤프

덤프 파일 사용
 접근 위반, 핸들 누수 덤프 파일 분석 데모

윈도우 오류 보고
 Dr.Watson, WER, CER
[실전 윈도우 디버깅] 13 포스트모템 디버깅

[실전 윈도우 디버깅] 13 포스트모템 디버깅

  • 1.
  • 2.
    고객의 정책, 환경문제로 실시 간 접근이 불가능 할 때 실패 시점에 시스템 상태 스냅 샷을 만들어서 분석한다.  덤프 파일
  • 3.
    덤프 파일 기본 덤프파일 생성 덤프 파일 사용 윈도우 오류 보고
  • 4.
    덤프 파일 종류 풀full덤프 프로세서 실행 이미지 핸들 테이블 디버거가 사용하는 기타정보 데이터 양을 조절할 수 없다. 미니mini 덤프 커스터마이즈가 가능하다.
  • 5.
    덤프 파일 생성툴 - 윈도우 디버거 - ADPlus - WER Window Error Report - CER Corporate Error Reporting
  • 6.
    덤프 파일 기본 덤프 파일 종류, 생성 툴 덤프 파일 생성 덤프 파일 사용 윈도우 오류 보고
  • 7.
    void __cdecl wmain() { WCHAR* pszTitle=L”Advanced Windows Debugging”; wprintf(L”Press any key to startn”); WCHAR* pBuffer=(WCHAR*)new WCHAR[wcslen(pszTitle)+1]; if (pBuffer) { StringCchCopy( pBuffer, wcslen(pszTitle)+1, pszTitle); wprintf(L”Title: %sn”, pBuffer); pBuffer = NULL; *pBuffer = ‘0’; } else { wprintf(L”Failed to allocate memoryn”); } wprintf(L”Press any key to endn”); __getch(); }
  • 8.
    덤프 파일 생성,로드 데모 덤프 파일 생성 스크릮캐스트 : http://screencast.com/t/nkXLVNjv 생성한 덤프 로드 스크릮캐스트 : http://screencast.com/t/QRL0uDMgY
  • 9.
    포스트모템 디버거 프로세스가 크래시될때마다 윈도우가 디버거를 사용해 덤프 파일을 생성하게 하는 메커니즘
  • 10.
    포스트모템 디버거 설정 HKEY_LOCAL_MACHINE Software Microsoft Windows NT CurrentVersionAeDebug windbg.exe –p %ld –e %ld –g -p %ld : 연결할 프로세스 -e %ld : 연결이 완료될 때 시그널되는 이벤트 -g : 연결할 때 발생하는 최초 디폴트 중단점을 무시
  • 11.
  • 12.
    ADPlus adplus.vbs -crash -pnawdscenario1.exe -y SRV*c:Symbols*http://msdl.microsoft.com/download/symbols
  • 13.
    ADPlus(계속) 자동으로 덤프 파일생성. FullOnFirst MiniOnSecond NoDumpOnFirst NoDumpOnSecond
  • 14.
    커널덤프 제어판 > 시스템> 고급 > 시작 및 복구
  • 15.
    커널 덤프 종류 젂체메모리 덤프 - 모든 물리 메모리 포함 - 젂체 RAM보다 1MB 큰 파일을 저장할 공간 필 요 커널 메모리 덤프 - 시스템 물리 메모리 1/3 - 윈도우 커널, HAL, 커널 모드 드라이버… 작은 메모리 덤프minidump - 64KB, 덤프 파일 공간이 제한되어 있을 때 유용. - 프로세서 컨텍스트, 커널 컨텍스트, 호출 스택…
  • 16.
    수동으로 크래시 덤프파일 생성 HKEY_LOCAL_MACHINE system CurrentControlSet Services i8042prtParameters <CrashOnCtrlScroll, REG_DWORD 0x1> 오른쪽 CTRL + SCROLL LOCK을 두번 누르면 크래시 PS2 키보드
  • 17.
    덤프 파일 기본 덤프 파일 종류, 생성 툴 덤프 파일 생성 덤프 생성 데모, 포스트모템 디버거, ADPlus, 커널 덤프 덤프 파일 사용 윈도우 오류 보고
  • 19.
    덤프 파일 분석: 접근 위반, 핸들 누수 데모 접근 위반 분석 스크릮캐스트 : http://screencast.com/t/3j1AEyix5J0 핸들 누수 덤프 생성 스크릮캐스트 : http://screencast.com/t/EfQReO9n 핸들 누수 덤프 분석 스크릮캐스트 : http://screencast.com/t/5mYX8tscYG
  • 20.
    덤프 파일 기본 덤프 파일 종류, 생성 툴 덤프 파일 생성 덤프 생성 데모, 포스트모템 디버거, ADPlus, 커널 덤프 덤프 파일 사용 접근 위반, 핸들 누수 덤프 파일 분석 데모 윈도우 오류 보고
  • 21.
    Dr.Watson WER Window ErrorReport 서비스에 보낼 수 있는 오류 보고 정보를 생성 - 예외 섹션 - 시스템 정보 - 작업 목록 - 모듈 목록 - 쓰레드 상태 덤프 - 스택 역추적 - 로raw 스택 덤프
  • 22.
    윈도우 오류 보고아키텍처 사용자 프로세스 X가 크래시 Dr.Watson UI 표시 “보내기”를 클릭 크래시 데이터 폴트 대응 WER 피드백 루프로 사용할 수 있는 수정을 제공 크래시 데이터를 관리 ISV (질의, 피드백 루프 제공…) 크래시 데이터가 있는지 주기적으로 질의
  • 23.
    윈도우 오류 보고 크래시덤프 및 오류 보고를 대신 수집, 관리해준다. 등록 젃차 - 사용자 계정, 회사 계정 생성 - 무료 책 664 참고
  • 24.
    기업 오류 보고 오류보고를 지역적으로 보관할 수 있다. - MS로 덤프, 오류 보고를 선택해서 보낼 수 있다. - 보안에 민감한 부분 책 683 참고
  • 25.
    덤프 파일 기본 덤프 파일 종류, 생성 툴 덤프 파일 생성 덤프 생성 데모, 포스트모템 디버거, ADPlus, 커널 덤프 덤프 파일 사용 접근 위반, 핸들 누수 덤프 파일 분석 데모 윈도우 오류 보고 Dr.Watson, WER, CER