2010-03-27 35 views
10

Sanal işlevlere sahip taban sınıfı nesnesine bir işaretçi kullanarak vtable nasıl görüntülenir?C++ polimorfik sınıfında gdb kullanarak vtable

+3

Neden incelemek istiyoruz vtable? Normalde derleyicinin sanal işlevler için kullandığı bir uygulama olarak kabul edilir. –

+0

Çok ilgili bir soru: http://stackoverflow.com/questions/2549618/ –

+0

ddd ön ucu kullanılıyorsa, bir çok C++ nesnesi ekranını otomatikleştirir. – PypeBros

cevap

16

set print object on'u denediniz mi? , Gdb benim kendi sürümü yeterince yeni değil, siz gdb yeterince yeni sürümü varsa

(gdb) help set print object 
Set printing of object's derived type based on vtable info. 
+0

BTW, lldb cinsinden, "settings target target {target =" target -ferre-run-target "hedefine eşdeğerdir). Bunu yanıtlıyorum çünkü gdb artık Xcode'un bir parçası değil. – kakyo

+0

Maalesef, "settings target.prefer-dynamic-value run-target" ayarlanmış olmalıydı – kakyo

+0

Teşekkür ederim. Bu cevap - 2010'da bunu tüm yolla gönderdiğiniz için çok sevindim! –

4

, siz veya belki de "bilgi vtable" denir (komutu "vtbl bilgi" bakmak isteyebilirsiniz ve böylece özelliği kendim test edemiyorum). Bu soruya bir cevap googling zaman

Sadece özelliğini fark etti ve ben Mart 2012 tarihinden itibaren 2012 dolaylarında özellikle bu bir gdb posta listesine mesajları fark:

http://permalink.gmane.org/gmane.comp.gdb.patches/73957