!풀

!pool 확장은 특정 풀 할당 또는 전체 시스템 전체 풀에 대한 정보를 표시합니다.

!pool [Address [Flags]]

매개 변수

주소
표시할 풀 항목을 지정합니다. 주소가 -1이면 이 명령은 프로세스의 모든 힙에 대한 정보를 표시합니다.

주소가 0이거나 생략된 경우 이 명령은 프로세스 힙에 대한 정보를 표시합니다.

Flags
사용할 세부 정보 수준을 지정합니다. 다음 비트 값의 조합일 수 있습니다. 기본값은 0입니다.

비트 0(0x1)
디스플레이에 풀 헤더뿐만 아니라 풀 내용이 포함되도록 합니다.

비트 1(0x2)
지정된 주소가 실제로 포함된 풀을 제외한 모든 풀에 대한 풀 헤더 정보를 표시하지 않습니다.

비트 31(0x80000000)
디스플레이에서 풀 유형 및 풀 태그에 대한 설명을 표시하지 않습니다.

DLL

Kdexts.dll

추가 정보

메모리 풀에 대한 자세한 내용은 Mark Russinovich 및 David Solomon의 WDK(Windows 드라이버 키트) 설명서 및 Microsoft Windows 내부를 참조하세요.

설명

Windows XP 이상 버전의 Windows 에서는 !pool 확장이 각 할당과 연결된 풀 태그를 표시합니다. 해당 풀 태그의 소유자도 표시됩니다. 이 표시는 pooltag.txt 파일의 내용을 기반으로 합니다. 이 파일은 Windows용 디버깅 도구 설치의 심사 하위 디렉터리에 있습니다. 원하는 경우 이 파일을 편집하여 프로젝트와 관련된 풀 태그를 더 추가할 수 있습니다.

경고 현재 버전과 동일한 디렉터리에 업데이트된 버전의 Windows용 디버깅 도구를 설치하면 pooltag.txt 포함하여 해당 디렉터리의 모든 파일을 덮어씁니다. 샘플 pooltag.txt 파일을 수정하거나 바꾸는 경우 해당 파일의 복사본을 다른 디렉터리에 저장해야 합니다. 디버거를 다시 설치한 후 저장된 pooltag.txt 기본 버전에 복사할 수 있습니다.

!pool 확장이 풀 손상을 보고하는 경우 !poolval을 사용하여 조사해야 합니다.

예를 들어 다음과 같습니다. 주소가 0xE1001050 지정하면 이 블록에 있는 모든 풀의 헤더가 표시되고 0xE1001050 자체에 별표(*)가 표시됩니다.

kd> !pool e1001050 
 e1001000 size:   40 previous size:    0  (Allocated)  MmDT
 e1001040 size:   10 previous size:   40  (Free)       Mm  
*e1001050 size:   10 previous size:   10  (Allocated) *ObDi
 e1001060 size:   10 previous size:   10  (Allocated)  ObDi
 e1001070 size:   10 previous size:   10  (Allocated)  Symt
 e1001080 size:   40 previous size:   10  (Allocated)  ObDm
 e10010c0 size:   10 previous size:   40  (Allocated)  ObDi
.....

이 예제에서 오른쪽 열에는 풀 태그가 표시됩니다. 이 열의 왼쪽에 있는 열은 풀이 무료인지 할당되었는지 여부를 표시합니다.

다음 명령은 풀 헤더 및 풀 내용을 보여 줍니다.

kd> !pool e1001050 1
 e1001000 size:   40 previous size:    0  (Allocated)  MmDT
 e1001008  ffffffff 0057005c 004e0049 004f0044
    e1001018  ffffffff 0053005c 00730079 00650074

 e1001040 size:   10 previous size:   40  (Free)       Mm  
 e1001048  ffffffff e1007ba8 e1501a58 01028101
    e1001058  ffffffff 00000000 e1000240 01028101

*e1001050 size:   10 previous size:   10  (Allocated) *ObDi
 e1001058  ffffffff 00000000 e1000240 01028101
    e1001068  ffffffff 00000000 e10009c0 01028101

 e1001060 size:   10 previous size:   10  (Allocated)  ObDi
 e1001068  ffffffff 00000000 e10009c0 01028101
    e1001078  ffffffff 00000000 00000000 04028101

......