SORU
12 EYLÜL 2008, Cuma


'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
12 EYLÜL 2008, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobono1baby

    bobono1baby

    14 AĞUSTOS 2011
  • Hak5

    Hak5

    7 EYLÜL 2005
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006