'bellek erişim' GDB içinde bir kesme noktası ayarlayabilirsiniz?
Gdb ile bir uygulama kullanıyorum ve belirli bir değişken / değişen erişilen herhangi bir zaman için bir kesme noktası ayarlamak istiyorum. Bunu yapmak için iyi bir yöntem var mı? Farklı şekillerde de C/C değişken değiştiğinde diye görmek için, izleyici için ilgi olacaktır.
CEVAP
izleyazmak sadece keserrwatchsen okumaya devam kıralımawatchokuma/Ara ver yazma.
Bellek mekan: dikkat edilmesi gereken hususlar okumak ayarlayabilirsiniz
gdb$ rwatch *0xfeedface
Hardware read watchpoint 2: *0xfeedface
ama bir sınırlama rwatch ve awatch komutları için; gdb değişkenleri kullanamazsınız geçerlidir ifadeler:
gdb$ rwatch $ebx 0xec1a04f
Expression cannot be implemented with read/access watchpoint.
Kendin genişletmek zorunda:
gdb$ print $ebx
$13 = 0x135700
gdb$ rwatch *0x135700 0xec1a04f
Hardware read watchpoint 3: *0x135700 0xec1a04f
gdb$ c
Hardware read watchpoint 3: *0x135700 0xec1a04f
Value = 0xec34daf
0x9527d6e7 in objc_msgSend ()
Düzenleme:Oh, ve bu arada. Ya da donanım gerekirya da yazılım desteği. Yazılım belli ki çok daha yavaş. Eğer OS donanım destekleyip desteklemediğini öğrenmek için görebilirsiniz dikkat edilmesi gereken hususlar-kullanımı-donanım-dikkat edilmesi gereken hususlarortam ayarı.
gdb$ show can-use-hw-watchpoints
Debugger's willingness to use watchpoint hardware is 1.
Javascript kodu içinde kesme noktası a...
Nasıl nesne bir dize özelliğidir dayan...
En iyi Windows Form içinde başka bir f...
Visual Studio koşullu kesme noktası ay...
Nasıl "hata ayıklama" için ma...