Bagikan melalui


Mode Peralihan

Saat Anda mengontrol penelusuran kesalahan mode pengguna dari debugger kernel, Anda menemukan empat mode berbeda, dan dapat beralih di antara mereka dengan berbagai cara.

Catatan Dalam menjelaskan skenario ini, aplikasi target mengacu pada aplikasi mode pengguna yang sedang di-debug, komputer target mengacu pada komputer yang berisi aplikasi target dan proses CDB atau NTSD, dan komputer host mengacu pada komputer yang berisi debugger kernel.

Empat mode berikut akan ditemui:

Penelusuran kesalahan mode pengguna
Komputer target dan aplikasi target dibekukan. Perintah penelusuran kesalahan mode pengguna muncul di jendela Perintah Debugger dari debugger kernel. Di WinDbg, perintah di panel bawah jendela WinDbg menampilkan Input>. Anda dapat memasukkan perintah pada perintah ini, seolah-olah perintah dimasukkan selama penelusuran kesalahan mode pengguna, untuk menganalisis status aplikasi target atau menyebabkannya berjalan atau melangkah melalui eksekusinya. File simbol, DLL ekstensi, dan file lain yang diakses debugger akan menjadi file-file tersebut di komputer target, bukan komputer host.

Eksekusi aplikasi target
Komputer target sedang berjalan, aplikasi target sedang berjalan, dan debugger sedang menunggu. Mode ini sama dengan membiarkan target berjalan dalam penelusuran kesalahan biasa.

Mode tidur
Komputer target berjalan, tetapi aplikasi target dibekukan, dan kedua debugger dibekukan. Mode ini berguna jika Anda harus melakukan sesuatu pada komputer target tetapi Anda tidak ingin mengubah status sesi penelusuran kesalahan.

Penelusuran kesalahan mode kernel
Komputer target dan aplikasi target dibekukan. Perintah debugging mode kernel kd> muncul di jendela Perintah Debugger dari debugger kernel. Mode ini adalah status debugging mode kernel yang khas.

Sesi dimulai dalam mode debugging mode pengguna. Tindakan dan peristiwa berikut menyebabkan mode berubah:

  • Untuk beralih dari penelusuran kesalahan mode pengguna ke eksekusi aplikasi target, gunakan perintah g (Go) di Input> prompt.

  • Untuk beralih sementara dari penelusuran kesalahan mode pengguna ke eksekusi aplikasi target lalu kembali ke penelusuran kesalahan mode pengguna, gunakan langkah, jejak, atau perintah eksekusi sementara lainnya. Untuk daftar perintah tersebut, lihat Mengontrol Target.

  • Untuk beralih dari penelusuran kesalahan mode pengguna ke mode tidur, gunakan perintah .sleep (Jeda Debugger). Perintah ini sudah waktunya. Ketika waktu kedaluwarsa, sistem kembali ke penelusuran kesalahan mode pengguna.

  • Untuk beralih dari penelusuran kesalahan mode pengguna ke debugging mode kernel, gunakan perintah .breakin (Break to the Kernel Debugger). Perhatikan bahwa .breakin mungkin gagal dengan kesalahan akses ditolak jika proses panggilan tidak memiliki hak administrator. Dalam hal ini, beralihlah ke KD dengan mengeluarkan perintah .sleep singkat dan tekan CTRL+C.

  • Anda dapat beralih dari eksekusi aplikasi target ke penelusuran kesalahan mode pengguna hanya di lingkungan tertentu. Jika komputer target menjalankan Microsoft Windows XP atau versi sistem operasi Windows yang lebih baru, Anda dapat menggunakan perintah ekstensi !bpid . Jika Anda menggunakan CDB (bukan NTSD), Anda dapat mengaktifkan jendela CDB pada komputer target dan menekan CTRL+C.

  • Jika aplikasi target mencapai titik henti, mengalami pengecualian, mengalami beberapa peristiwa terkontrol lainnya, atau berakhir, sistem beralih dari eksekusi aplikasi target ke penelusuran kesalahan mode pengguna. Anda harus merencanakan peristiwa tersebut terlebih dahulu, terutama ketika Anda menggunakan NTSD. Untuk informasi selengkapnya tentang peristiwa ini, lihat Menggunakan Titik Henti dan Mengontrol Pengecualian dan Peristiwa.

  • Untuk beralih dari eksekusi aplikasi target ke debugging mode kernel, tekan CTRL+C di jendela KD, tekan CTRL+BREAK atau klik Putus pada menu Debug di jendela WinDbg, atau tekan SYSRQ atau ALT+SYSRQ pada keyboard komputer target. (Jika debugger kernel Anda adalah KD dan jika Anda menekan CTRL+C pada saat yang sama saat debugger kernel berkomunikasi dengan debugger mode pengguna, debugger mode pengguna mungkin menangkap Anda menekan CTRL+C.)

  • Jika debugger mengalami kesalahan kernel atau jika Anda menggunakan alat Breakin.exe, sistem beralih dari eksekusi aplikasi target ke debugging mode kernel.

  • Untuk beralih dari mode tidur ke penelusuran kesalahan mode pengguna, tunggu hingga waktu tidur kedaluwarsa, mulai proses CDB baru di komputer target dengan menggunakan opsi baris perintah -wake, atau gunakan perintah .wake (Wake Debugger) dalam salinan CDB atau NTSD yang berbeda pada komputer target.

  • Untuk beralih dari debugging mode kernel, gunakan perintah g (Go) di kd> prompt. Perintah ini kembali ke penelusuran kesalahan mode pengguna atau eksekusi aplikasi target (mana pun dari keduanya adalah status yang terakhir digunakan).