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.
Perintah z menjalankan perintah sementara kondisi tertentu benar.
Mode Pengguna
Command ; z( Expression )
Mode Kernel
Command ; [Processor] z( Expression )
Parameter
Perintah
Menentukan perintah untuk dijalankan saat kondisi Ekspresi mengevaluasi ke nilai bukan nol. Perintah ini selalu dijalankan setidaknya sekali.
Prosesor
Menentukan prosesor yang berlaku untuk pengujian. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks Multiproscessor. Anda hanya dapat menentukan prosesor dalam mode kernel.
Ekspresi
Menentukan kondisi yang akan diuji. Jika kondisi ini mengevaluasi ke nilai bukan nol, perintah Perintah dijalankan lagi lalu Ekspresi diuji lagi. Untuk informasi selengkapnya tentang sintaks, lihat Sintaks Ekspresi Numerik.
Lingkungan
| Item | Deskripsi |
|---|---|
| Mode | Mode pengguna, mode kernel |
| Target | Live, crash dump |
| Platform | Semua |
Keterangan
Dalam banyak perintah debugger, titik koma digunakan untuk memisahkan perintah yang tidak terkait. Namun, dalam perintah z , titik koma memisahkan "z" dari parameter Perintah .
Perintah Perintah selalu dijalankan setidaknya sekali, lalu Ekspresi diuji. Jika kondisi adalah nilai bukan nol, perintah kembali dijalankan, lalu Ekspresi diuji lagi. (Perilaku ini mirip dengan do bahasa C - sementara perulangan, bukan perulangan sementara yang sederhana.)
Jika ada beberapa titik koma di sebelah kiri "z", semua perintah di sebelah kiri "z" berulang selama kondisi Ekspresi benar. Perintah tersebut dapat berupa perintah debugger apa pun yang mengizinkan titik koma terminal.
Jika Anda menambahkan titik koma lain dan perintah tambahan setelah perintah z , perintah tambahan ini dijalankan setelah perulangan selesai. Kami biasanya tidak merekomendasikan baris yang dimulai dengan "z" karena menghasilkan output yang tidak memikat selamanya kecuali kondisi menjadi salah karena beberapa tindakan lain. Perhatikan bahwa Anda dapat menumpuk perintah z .
Untuk memutus perulangan yang berlanjut terlalu lama, gunakan CTRL+C di CDB atau KD, atau gunakan Debug | Putuskan dari menu, atau CTRL+BREAK di WinDbg.
Contoh kode berikut menunjukkan cara yang tidak perlu kompleks untuk nol register eax .
0:000> reax = eax - 1 ; z(eax)
Contoh berikut menaikkan register eax dan ebx sampai salah satunya setidaknya 8 dan kemudian menaikkan ecx register sekali.
0:000> reax=eax+1; rebx=ebx+1; z((eax<8)|(ebx<8)); recx=ecx+1
Contoh berikut menggunakan sintaks ekspresi C++ dan menggunakan $t 0 pseudo-register sebagai variabel perulangan.
0:000> .expr /s c++
Current expression evaluator: C++ - C++ source expressions
0:000> db pindexcreate[@$t0].szKey; r$t0=@t0+1; z( @$t0 < cIndexCreate )