Bir programda hata ayıkladığımda ve karşılaştığım düzgün hizalanmış, işaretçi boyutu için sembolleri aldığımda yığınının gitmesini sağlıyorum. Bunu elle yapmaktan sıkıldım ve bu yüzden benim için bir komut yazmayı denedim. Sorun, "bilgi sembolü" parametresi, işaretçi dereferansı yoluyla ayarlandığında parametresi olarak bir kolaylık değişkeni kullanmaktan hoşlanmaz. IE:GDB uygunluk değişkeninde tutulan değer için sembol bilgisi alma
(gdb) info symbol 0xb6ca4d28
[Useful Symbol Information]
(gdb) set $pointer = $esp
(gdb) while (*(int*)$pointer != 0xb6ca4d28)
>set $pointer += 4
>end
(gdb) x/x $pointer
0x6ebee064: 0xb6ca4d28
(gdb) set $dereferencePointer = *(int *)$pointer
(gdb) p/x $dereferencePointer
$103 = 0xb6ca4d28
(gdb) info symbol $dereferencePointer
No symbol matches $dereferencePointer.
(gdb) set $dereferencePointer = 0xb6ca4d28
(gdb) p/x $dereferencePointer
$104 = 0xb6ca4d28
(gdb) info symbol $dereferencePointer
[Useful symbol information]
(gdb)
Neden bu? Bu bir hata mı? Bunu yapmanın farklı bir yolu var mı?
Teşekkürler!
Luc
Not: Bu büyük olasılıkla bir hata
geçerli: listeden 7.5
Güncelleme vanilya GDB kullanma.
Belki bir 'gdb' ile ilgili posta listesi sormak için daha iyi bir yer olabilir. –
Takip etmek için: Freebsd sorularının gdb eşdeğerini bulamadım, bu soruyu genel gdb listesine gönderdim ve henüz bir yanıt almamıştım. Eğer yaparsam, soruyu güncelleyeceğim. – shroudednight
Kayıt için, bu GNU gdb (GDB) 7.3.50.20111117-cvs-debian' üzerinde iyi çalışıyor gibi görünüyor – Jester