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 .step_filter membuat daftar fungsi yang dilewati (dilangkahi) saat melacak. Ini memungkinkan Anda untuk melacak melalui kode dan hanya melewati fungsi tertentu. Ini juga dapat digunakan dalam mode sumber untuk mengontrol langkah ketika ada beberapa panggilan fungsi pada satu baris.
.step_filter "FilterList"
.step_filter /c
.step_filter
Parameter
"FilterList"
Menentukan simbol yang terkait dengan fungsi yang akan dilangkahi. FilterList dapat berisi sejumlah pola teks yang dipisahkan oleh titik koma. Masing-masing pola ini mungkin berisi berbagai kartubebas dan penentu; lihat Sintaks Wildcard String untuk detailnya. Fungsi yang simbolnya cocok dengan setidaknya salah satu pola ini akan dilangkah selama pelacakan. Setiap kali "FilterList" digunakan, daftar filter sebelumnya dibuang dan diganti sepenuhnya dengan daftar baru.
/c
Menghapus daftar filter.
Lingkungan
Item | Deskripsi |
---|---|
Mode | Mode pengguna, mode kernel |
Target | Live, crash dump |
Platform | Semua |
Keterangan
Tanpa parameter apa pun, .step_filter menampilkan daftar filter saat ini.
Biasanya, perintah pelacakan (misalnya, t atau debug windbg | masuk ke] jejak ke dalam panggilan fungsi. Namun, jika simbol yang terkait dengan fungsi yang disebut cocok dengan pola yang ditentukan oleh FilterList, fungsi akan dilangkahi -- seolah-olah perintah langkah (misalnya, p) telah digunakan.
Jika penunjuk instruksi terletak di dalam kode yang tercantum dalam daftar filter, perintah jejak atau langkah apa pun akan keluar dari fungsi ini, seperti perintah gu atau tombol WinDbg Step Out. Tentu saja, filter ini akan mencegah kode tersebut ditelusuri di tempat pertama, jadi ini hanya akan terjadi jika Anda telah mengubah filter atau mencapai titik henti.
Misalnya, perintah berikut akan menyebabkan perintah pelacakan melewati semua panggilan CRT:
.step_filter "msvcrt!*"
Perintah .step_filter paling berguna saat Anda menelusuri kesalahan dalam mode sumber, karena mungkin ada beberapa panggilan fungsi pada satu baris sumber. Perintah p dan t tidak dapat digunakan untuk memisahkan panggilan fungsi ini.
Misalnya, di baris berikut, perintah t akan masuk ke GetTickCount dan printf, sementara perintah p akan melangkahi kedua panggilan fungsi:
printf( "%x\n", GetTickCount() );
Perintah .step_filter memungkinkan Anda memfilter salah satu panggilan ini sambil masih menelusuri ke panggilan lainnya.
Karena fungsi diidentifikasi dengan simbol, satu filter dapat menyertakan seluruh modul. Ini memungkinkan Anda memfilter fungsi kerangka kerja -- misalnya, panggilan Microsoft Foundation Classes (MFC) atau Active Template Library (ATL).
Saat menelusuri kesalahan dalam mode perakitan, setiap panggilan berada di baris yang berbeda, sehingga Anda dapat memilih apakah akan melangkah atau melacak baris demi baris. Jadi .step_filter tidak terlalu berguna dalam mode perakitan.