Bagikan melalui


Menggunakan Perintah Ekstensi Debugger

Penggunaan perintah ekstensi debugger sangat mirip dengan penggunaan perintah debugger. Perintah di ketik di jendela Perintah Debugger, menghasilkan output di jendela ini atau perubahan aplikasi target atau komputer target.

Perintah ekstensi debugger aktual adalah titik masuk dalam DLL yang disebut oleh debugger.

Ekstensi debugger dipanggil oleh sintaks berikut:

! [module.]extension[argumen]

Nama modul tidak boleh diikuti dengan ekstensi nama file .dll. Jika modul menyertakan jalur lengkap, batas ukuran string default adalah 255 karakter.

Jika modul belum dimuat, modul akan dimuat ke debugger menggunakan panggilan ke LoadLibrary(modul). Setelah debugger memuat pustaka ekstensi, ia memanggil fungsi GetProcAddress untuk menemukan nama ekstensi dalam modul ekstensi. Nama ekstensi peka huruf besar/kecil dan harus dimasukkan persis seperti yang muncul di file .def modul ekstensi. Jika alamat ekstensi ditemukan, ekstensi akan dipanggil.

Urutan Pencarian

Jika nama modul tidak ditentukan, debugger akan mencari modul ekstensi yang dimuat untuk ekspor ini.

Urutan pencarian default adalah sebagai berikut:

  1. Modul ekstensi yang berfungsi dengan semua sistem operasi dan dalam kedua mode: Dbghelp.dll dan winext\ext.dll.

  2. Modul ekstensi yang berfungsi di semua mode tetapi khusus untuk sistem operasi. Untuk Windows XP dan versi Windows yang lebih baru, ini winxp\exts.dll.

  3. Modul ekstensi yang berfungsi dengan semua sistem operasi tetapi bersifat khusus mode. Untuk mode kernel, ini winext\kext.dll. Untuk mode pengguna, ini winext\uext.dll.

  4. Modul ekstensi yang khusus untuk sistem operasi dan mode khusus. Tabel berikut menentukan modul ini.

Mode Pengguna Kernel Mode
winxp \ ntsdexts.dll winxp \ kdexts.dll

Saat modul ekstensi dibongkar, modul tersebut dihapus dari rantai pencarian. Saat modul ekstensi dimuat, modul ditambahkan ke awal urutan pencarian. Perintah .setdll (Set Default Extension DLL) dapat digunakan untuk mempromosikan modul apa pun ke bagian atas rantai pencarian. Dengan menggunakan perintah ini berulang kali, Anda dapat sepenuhnya mengontrol rantai pencarian.

Gunakan perintah .chain (List Debugger Extensions) untuk menampilkan daftar semua modul ekstensi yang dimuat dalam urutan pencarian mereka saat ini.

Jika Anda mencoba menjalankan perintah ekstensi yang tidak ada dalam modul ekstensi yang dimuat, Anda akan mendapatkan pesan kesalahan Ekspor Tidak Ditemukan.