Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memantau Akses Pembolehubah dan Bacaan/Tulis Memori dalam GDB Menggunakan Titik Putus?
Dalam GDB, anda boleh menetapkan titik putus untuk memantau pembolehubah tertentu dan mengenal pasti apabila ia diakses atau diubah suai. Berikut ialah pecahan arahan dan teknik GDB untuk tujuan ini:
Arahan Titik Awas:
Menetapkan Titik Pantauan pada Lokasi Memori:
Anda boleh tetapkan titik pantau pada lokasi memori menggunakan arahan rwatch:
gdb$ rwatch *0xfeedface
Ini akan mencetuskan titik putus apabila alamat memori 0xfeedface dibaca.
Penghadan Titik Pantau pada Ungkapan:
Perhatikan bahawa titik pantau GDB tidak boleh ditetapkan pada ungkapan yang melibatkan pembolehubah:
gdb$ rwatch $ebx+0xec1a04f Expression cannot be implemented with read/access watchpoint.
Untuk mengatasi masalah ini, kembangkan secara manual ungkapan:
gdb$ print $ebx = 0x135700 gdb$ rwatch *0x135700+0xec1a04f
Sokongan Perkakasan lwn. Perisian:
Titik pantau perkakasan menawarkan prestasi yang lebih pantas daripada titik pantau perisian. Untuk menyemak sama ada OS anda menyokong titik pantau perkakasan, jalankan arahan berikut:
gdb$ show can-use-hw-watchpoints
Jika output ialah 1, titik pantau perkakasan tersedia.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memantau Akses Pembolehubah dan Bacaan/Tulis Memori dalam GDB Menggunakan Titik Putus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!