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.
Ada sejumlah metode yang dapat digunakan untuk menentukan informasi dasar tentang titik henti:
GetId mengembalikan ID titik henti.
GetType mengembalikan jenis titik henti (perangkat lunak atau prosesor) dan jenis prosesor efektif tempat titik henti diatur.
GetAdder mengembalikan klien yang menambahkan titik henti.
GetOffset mengembalikan alamat titik henti.
GetOffsetExpression mengembalikan string ekspresi yang menentukan lokasi titik henti.
Selain lokasi dan jenis titik hentinya, titik henti memiliki beberapa parameter yang mengontrol perilakunya.
Parameter titik henti dapat dikontrol melalui berbagai metode tertentu. Selain itu, sebagian besar parameter dapat dikueri bersama-sama menggunakan GetParameters.
Penanda Titik Henti
Bendera titik henti adalah salah satu jenis parameter titik henti.
Tanda breakpoint dapat dikueri menggunakan GetFlags. Mereka dapat diubah dengan menggunakan AddFlags, RemoveFlags, atau SetFlags.
Bendera titik henti membentuk bidang bit. Kemungkinan bendera yang dapat digunakan dalam bidang bit ini, dan maknanya, adalah sebagai berikut:
DEBUG_BREAKPOINT_ENABLED
Ketika tanda ini diatur, titik henti aktif dan akan memiliki efek normalnya. Ketika flag ini tidak disetel, breakpoint dinonaktifkan dan tidak akan berpengaruh. Jika Anda ingin menonaktifkan titik henti untuk sementara, Anda dapat menghapus bendera ini; kemudian mudah untuk menambahkan bendera ini kembali ketika Anda ingin mengaktifkan kembali titik henti ini.
DEBUG_BREAKPOINT_ADDER_ONLY
Ketika penanda ini diatur, titik henti adalah titik henti privat. Titik henti ini hanya terlihat oleh klien yang menambahkannya. Dalam hal ini, klien lain tidak akan dapat mengkueri mesin untuk titik henti, dan mesin tidak akan mengirim peristiwa yang dihasilkan oleh titik henti ke klien lain. Semua panggilan balik (peristiwa dan output) yang terkait dengan titik henti ini hanya akan dikirim ke klien ini. Lihat GetAdder.
DEBUG_BREAKPOINT_GO_ONLY
Ketika penanda ini diatur, titik henti hanya akan dipicu jika target berada dalam eksekusi tanpa batasan. Ini tidak akan dipicu jika mesin melangkah melalui instruksi dalam target.
DEBUG_BREAKPOINT_ONE_SHOT
Ketika penanda ini diatur, titik henti akan hilang secara otomatis saat pertama kali dipicu.
DEBUG_BREAKPOINT_DEFERRED
Ketika flag ini disetel, titik henti ditangguhkan. Flag ini diatur oleh engine ketika offset breakpoint ditentukan menggunakan ekspresi simbolis, dan engine tidak dapat mengevaluasi ekspresi tersebut. Setiap kali modul dimuat atau dilepas pada target, mesin akan mencoba mengevaluasi ulang ekspresi untuk semua breakpoint yang lokasinya ditentukan dengan ekspresi. Mereka yang tidak dapat dievaluasi ditandai sebagai ditangguhkan. Bendera ini tidak dapat dimodifikasi oleh klien mana pun.
Parameter Titik Henti Lainnya
Parameter titik henti juga meliputi:
Jumlah lulus
Jika titik henti memiliki jumlah pass yang terkait dengannya, titik henti tidak akan diaktifkan sampai target melewati titik henti berapa kali yang ditentukan. Jumlah pass yang awalnya ditetapkan dapat ditemukan dengan menggunakan GetPassCount. Sisa jumlah kali mesin akan melewati titik henti sebelum diaktifkan dapat diketahui menggunakan GetCurrentPassCount. Jumlah pass dapat diatur ulang ke nilai baru dengan menggunakan SetPassCount.
Utas Diskusi
Jika titik henti memiliki utas yang terkait dengannya, itu akan diabaikan oleh mesin ketika ditemui oleh utas lain. The thread dapat ditemukan dengan menggunakan GetMatchThreadId, dan dapat diubah dengan menggunakan SetMatchThreadId.
Perintah
Titik henti dapat memiliki perintah yang terkait dengannya. Perintah dijalankan ketika titik henti diaktifkan. Perintah ini dapat ditemukan dengan menggunakan GetCommand, dan dapat diubah dengan menggunakan SetCommand.
Ukuran
Jika titik henti adalah titik henti prosesor, titik henti harus memiliki ukuran yang ditentukan. Ini menentukan ukuran blok memori yang aksesnya akan mengaktifkan titik henti -- awal blok adalah lokasi titik henti. Ukurannya dapat ditemukan dengan menggunakan GetDataParameters, dan dapat diubah dengan menggunakan SetDataParameters.
Jenis akses
Jika titik henti adalah titik henti prosesor, titik henti harus memiliki jenis akses. Ini menentukan jenis akses yang akan mengaktifkan titik henti. Misalnya, titik henti dapat diaktifkan jika target membaca dari, menulis ke, atau menjalankan memori yang ditentukan oleh titik henti. Jenis akses dapat ditemukan dengan menggunakan GetDataParameters, dan dapat diubah dengan menggunakan SetDataParameters.
Parameter valid untuk Titik Henti Prosesor
Jenis akses berikut tersedia untuk titik henti prosesor:
| Nilai | Deskripsi |
|---|---|
DEBUG_MENGHENTIKAN_PEMBACAAN |
Titik henti akan dipicu ketika CPU membaca memori di blok memori titik henti. |
DEBUG_BREAK_WRITE |
Titik henti akan dipicu ketika CPU menulis memori di blok memori titik henti. |
| DEBUG_BREAK_READ | DEBUG_BREAK_WRITE | Titik henti akan dipicu ketika CPU membaca atau menulis memori di blok memori titik henti. |
DEBUG_BREAK_EXECUTE (Hentikan Debugging Eksekusi) |
Titik henti akan dipicu ketika CPU mengambil instruksi di blok memori titik henti. |
DEBUG_BREAK_IO |
Titik henti akan dipicu ketika port I/O di blok memori titik henti diakses. (Hanya Windows XP dan Microsoft Windows Server 2003, mode kernel saja, hanya x86) |
Tidak semua jenis dan ukuran akses didukung pada semua prosesor. Jenis dan ukuran akses berikut ini didukung:
x86
Semua jenis akses didukung. DEBUG_BREAK_READ berfungsi seperti DEBUG_BREAK_READ | DEBUG_BREAK_WRITE. Ukurannya harus 1, 2, atau 4. Alamat titik henti harus menjadi kelipatan dari ukuran tertentu.
x64
Semua jenis akses didukung. DEBUG_BREAK_READ bertindak seperti DEBUG_BREAK_READ | DEBUG_BREAK_WRITE. Ukurannya harus 1, 2, 4, atau 8. Alamat titik henti harus berupa kelipatan ukuran.