Share via


!검색

!search 확장 프로그램은 지정된 조건과 일치하는 포인터 크기의 데이터를 실제 메모리의 페이지를 검색합니다.

구문

!search [-s] [-p] Data [ Delta [ StartPFN [ EndPFN ]]] 
!search -?

매개 변수

-s
검색하는 동안 기호 검사 오류가 무시되도록 합니다. 이 기능은 "커널에 대한 잘못된 기호" 오류가 너무 많은 경우에 유용합니다.

-p
데이터 값을 32비트 값으로 해석하여 기호 확장을 방지합니다.

Data
검색할 데이터를 지정합니다. 데이터는 대상 시스템의 포인터 크기(32비트 또는 64비트)여야 합니다. 데이터 값과 정확히 일치하는 항목이 항상 표시됩니다. 델타에 따라 다른 일치 항목도 표시됩니다. 자세한 내용은 아래 설명 섹션을 참조하세요.

델타
메모리의 값과 데이터 값 간의 허용되는 차이를 지정합니다. 자세한 내용은 아래 설명 섹션을 참조하세요.

StartPFN
검색할 범위 시작 부분의 PFN(페이지 프레임 번호)을 지정합니다. 생략하면 검색이 가장 낮은 실제 페이지에서 시작됩니다.

EndPFN
검색할 범위 끝의 PFN(페이지 프레임 번호)을 지정합니다. 생략하면 검색이 가장 높은 실제 페이지에서 끝납니다.

-?
디버거 명령 창에 이 확장에 대한 도움말을 표시합니다.

DLL

Kdexts.dll

추가 정보

실제 메모리를 표시하고 검색하는 더 많은 방법은 메모리 읽기 및 쓰기를 참조 하세요.

설명

StartPFNEndPFN을 지정하면 검색할 실제 메모리 범위의 시작 및 끝의 페이지 프레임 번호로 간주됩니다. 페이지 프레임 번호에 대한 설명은 가상 주소를 실제 주소로 변환을 참조 하세요. StartPFNEndPFN을 생략하면 모든 실제 메모리가 검색됩니다.

모든 적/

!search 확장은 지정된 페이지 범위에서 모든 메모리를 검색하고 각 ULONG_PTR 정렬된 값을 검사합니다. 다음 조건 중 하나 이상을 충족하는 값이 표시됩니다.

  • 값은 데이터와 정확히 일치합니다.

  • 델타가 0이거나 생략된 경우: 값이 Data단일 비트로 다릅니다.

  • Delta가 0이 아닌 경우: 값은 최대 델타별 데이터와 다릅니다. 즉, 값은 [Data - Delta, Data + Delta] 범위에 있습니다.

  • Delta가 0이 아닌 경우: 값은 범위의 가장 낮은 숫자(데이터 - 델타)와 단일 비트로 다릅니다.

대부분의 경우 데이터는 관심 있는 주소를 지정하지만 ULONG_PTR 크기의 데이터를 지정할 수 있습니다.

디버거의 검색 엔진 구조는 대상 컴퓨터의 메모리에 있기 때문에 모든 메모리(또는 이러한 구조가 포함된 범위)를 검색하면 구조 자체가 있는 영역에서 일치하는 항목이 표시됩니다. 이러한 일치 항목을 제거해야 하는 경우 임의 값을 검색합니다. 디버거의 검색 구조가 있는 위치를 나타냅니다.

다음 몇 가지 예를 참조하십시오. 다음은 PFN 0x237D 있는 메모리 페이지에서 0x80001230 0x80001238 사이의 값을 검색합니다.

kd> !search 80001234 4 237d 237d 

다음은 PFN 0x2370 0x237F 범위의 메모리 페이지에서 0x0F100F0F 1비트 내에 있는 값을 검색합니다. 정확한 일치 항목은 굵게 표시됩니다. 다른 항목은 한 비트씩 꺼져 있습니다.

kd> !search 0f100f0f 0 2370 237f
Searching PFNs in range 00002370 - 0000237F for [0F100F0F - 0F100F0F]

Pfn      Offset   Hit      Va       Pte      
- - - - - - - - - - - - - - - - - - -
0000237B 00000368 0F000F0F 01003368 C0004014 
0000237C 00000100 0F100F0F 01004100 C0004014 
0000237D 000003A8 0F100F0F 010053A8 C0004014 
0000237D 000003C8 0F100F8F 010053C8 C0004014 
0000237D 000003E8 0F100F0F 010053E8 C0004014 
0000237D 00000408 0F100F0F 01005408 C0004014 
0000237D 00000428 0F100F8F 01005428 C0004014 
Search done.

디스플레이의 열은 다음과 같습니다. Pfn 은 페이지의 PFN(페이지 프레임 번호)입니다.오프셋 은 해당 페이지의 오프셋입니다. 적중 은 해당 주소 의 값입니다.Va 는 이 실제 주소에 매핑된 가상 주소입니다(이 주소가 존재하고 확인할 수 있는 경우) .Pte 는 PTE(페이지 테이블 항목)입니다.

실제 주소를 계산하려면 PFN을 16진수 3자리(12비트)로 이동하고 오프셋을 추가합니다. 예를 들어 테이블의 마지막 줄은 가상 주소 0x0237D000 + 0x428 = 0x0237D428.