윈도우 디바이스 드라이버를 개발하며 풀 태그를 확인하기
osronline의 pooltag reporter를 사용하면 디바이스 드라이버들이 사용하는 커널 힙 메모리의 태그들과 그 용량을 GUI를 통해 확인할 수 있다.
어떤 풀 태그를 사용해서 논 페이지드 영역이나 페이지드 영역에 얼마만큼의 메모리를 할당하고 또 해제했는지를 실시간으로 보여준다.
디바이스 드라이버에서의 메모리 누수 등을 확인하고 싶을 때 주로 사용되며, 특정 태그들만 골라내서 보여줄 수 있는 기능이 있는데 와일드 카드도 지원이 되어서 편리하다.
디바이스 드라이버를 개발하며 디버깅하다보면 남의 풀 태그들을 보고서 이건 누구의 태그일까 궁금할 때가 많이 있는데, 윈도우즈에 기본으로 탑재되어 있는 드라이버들의 태그는 알아낼 수 있는 방법이 있다.
WDK나 Debugging Tools for Windows를 설치하면
예를 들어 WDK를 설치했다면,
C:\WinDDK\7600.16385.1\Debuggers\triage\pooltag.txt 와 같은 경로가 될 것이다.
C:\>pooltag -g C:\WinDDK\7600.16385.1\Debuggers\triage\pooltag.txt
pooltag
를 실행할 때 이렇게 뒤에 인자를 넣어주면 풀태그 애플리케이션이 텍스트 파일을 파싱해서 UI에 함께 보여준다.
참고로 논 페이지드 풀은 32비트 운영체제에서 물리메모리의 75%나 2GB중 작은 값만큼 최대로 할당할수 있다.
64비트 운영체제에서는 물리 메모리의 75%나 128GB 중 작은 값 만큼 할당할 수 있다.
함께 읽으면 좋은 글: