Windows Server 32bit 운영체제 환경에서는 커널 메모리 리소스 부족과 관련된 이슈로 인해 로컬 머신에 디버거를 연결해야 하는 종종 발생합니다. 현재 시스템 메모리 리소스 상태 주로 Paged Pool, NonPaged Pool Maxmum, Committed pages 정보 등을 확인하기 위해 디버거를 연결하게 되는데요. Debugging Tools for Windows 에 포함된 kd.exe 를 사용하여 커맨드로 쉽게 디버깅 명령을 실행할 수 있는 방법에 대해서 아래와 같이 정리하였습니다.

아래 명령을 수행하여 Command Prompt 에서 로컬 머신의 PagedPool, NonPaged Pool 리소스 상태 정보를 확인합니다.


[실행명령]
C:\> kd -kl -y "srv*c:\symbols*http://msdl.microsoft.com/download/symbols" -c "!vm 4";q | findstr PagedPool


[옵션 및 명령 설명]
 1. -kl : 로컬 머신으로 디버거 연결
 2. -y : symbols path 
 3. -c : 디버거 명령 실행 
 4. !vm 4 : virtual memroy 정보 
 5. ;q : kd 종료


[실행결과]


위 명령을 스크립트로 잘 활용하면 디버거 명령을 쉽게 File 로 Export 하여 로컬 머신 상태에 대해 모니터링 할 수 있습니다.


[참고자료]
LiveKD를 사용하여 전체 메모리 덤프 생성
http://laigo.kr/397

How to read the small memory dump files that Windows creates for debugging
http://support.microsoft.com/kb/315263/en-us


작성자 : Lai Go / 작성일자 : 2011.04.14
Posted by 사용자 Lai Go

댓글을 달아 주세요

  1. 진아가는 낙으네

    제 컴퓨터에는 C:\ 루트에 kd가 없어요..실망이에요. 똑바로 설명 해줘요~

    2011.04.14 15:12 [ ADDR : EDIT/ DEL : REPLY ]