Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ekstensi !search mencari halaman dalam memori fisik untuk data berukuran pointer yang cocok dengan kriteria yang ditentukan.
Sintaks
!search [-s] [-p] Data [ Delta [ StartPFN [ EndPFN ]]]
!search -?
Parameter
-s
Menyebabkan kesalahan pemeriksaan simbol diabaikan selama pencarian. Ini berguna jika Anda mendapatkan terlalu banyak kesalahan "simbol yang salah untuk kernel".
-p
Menyebabkan nilai Data ditafsirkan sebagai nilai 32-bit, mencegah ekstensi tanda apa pun.
Data
Menentukan data yang akan dicari. Data harus ukuran pointer pada sistem target (32 bit atau 64 bit). Kecocokan yang tepat untuk nilai Data selalu ditampilkan. Kecocokan lain juga ditampilkan, tergantung pada nilai Delta; lihat bagian Keterangan di bawah ini untuk detailnya.
Delta
Menentukan perbedaan yang diizinkan antara nilai dalam memori dan nilai Data. Lihat bagian Keterangan di bawah ini untuk detailnya.
StartPFN
Menentukan nomor bingkai halaman (PFN) dari awal rentang yang akan dicari. Jika ini dihilangkan, pencarian dimulai di halaman fisik terendah.
EndPFN
Menentukan nomor bingkai halaman (PFN) dari akhir rentang yang akan dicari. Jika ini dihilangkan, pencarian berakhir di halaman fisik tertinggi.
-?
Menampilkan bantuan untuk ekstensi ini di jendela Perintah Debugger.
DLL
Kdexts.dll
Informasi Tambahan
Untuk cara lain untuk menampilkan dan mencari memori fisik, lihat Membaca dan Menulis Memori.
Keterangan
Jika StartPFN dan EndPFN ditentukan, ini diambil sebagai nomor bingkai halaman dari awal dan akhir rentang dalam memori fisik yang akan dicari. Untuk penjelasan tentang nomor bingkai halaman, lihat Mengonversi Alamat Virtual ke Alamat Fisik. Jika StartPFN dan EndPFN dihilangkan, semua memori fisik akan dicari.
Semua temuan ditampilkan.
Ekstensi !search akan mencari semua memori dalam rentang halaman yang ditentukan dan memeriksa setiap nilai yang selaras ULONG_PTR. Nilai yang memenuhi setidaknya salah satu kriteria berikut ditampilkan:
Nilainya sama persis dengan Data .
Jika Delta adalah 0 atau dihilangkan: Nilainya berbeda dari Data dengan satu bit.
Jika Delta bukan nol: Nilainya berbeda dari Data paling banyak Delta. Dengan kata lain, nilainya terletak pada rentang [Data - Delta, Data + Delta].
Jika Delta bukan nol: Nilai berbeda dari angka terendah dalam rentang (Data - Delta) dengan satu bit.
Dalam kebanyakan kasus, Data akan menentukan alamat yang Anda minati, tetapi data berukuran ULONG_PTR apa pun dapat ditentukan.
Karena struktur mesin pencari debugger berada di memori pada komputer target, jika Anda mencari semua memori (atau rentang apa pun yang berisi struktur ini) Anda akan melihat kecocokan di area tempat struktur itu sendiri berada. Jika Anda perlu menghilangkan kecocokan ini, lakukan pencarian untuk nilai acak; ini akan menunjukkan di mana struktur pencarian debugger berada.
Berikut adalah beberapa contoh. Berikut ini akan mencari halaman memori dengan 0x237D PFN untuk nilai antara 0x80001230 dan 0x80001238, inklusif:
kd> !search 80001234 4 237d 237d
Berikut ini akan mencari halaman memori mulai dari 0x2370 PFN hingga 0x237F untuk nilai yang berada dalam satu bit 0x0F100F0F. Kecocokan yang tepat ditunjukkan dalam huruf tebal; yang lain off oleh satu bit:
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.
Kolom dalam tampilan adalah sebagai berikut: Pfn adalah nomor bingkai halaman (PFN) halaman; Offset adalah offset pada halaman tersebut; Hit adalah nilai di alamat tersebut; Va adalah alamat virtual yang dipetakan ke alamat fisik ini (jika ada dan dapat ditentukan); Pte adalah entri tabel halaman (PTE).
Untuk menghitung alamat fisik, geser PFN ke kiri tiga digit heksadesimal (12 bit) dan tambahkan offset. Misalnya, baris terakhir dalam tabel adalah alamat virtual 0x0237D000 + 0x428 = 0x0237D428.