2010-03-27 22 views
10

¿Cómo se visualiza vtable usando un puntero al objeto de la clase base que tiene funciones virtuales?vtable en la clase polimórfica de C++ usando gdb

+3

¿Por qué quiere inspeccionar el vtable? Normalmente se considera una implementación que el compilador usa para funciones virtuales. –

+0

Pregunta muy relacionada: http://stackoverflow.com/questions/2549618/ –

+0

si usa ddd front-end es una opción, automatiza la visualización de muchos objetos C++. – PypeBros

Respuesta

16

¿Has probado set print object on?

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

BTW, en lldb esto es equivalente a "configuraciones establecidas target.prefer-dynamic run-target". Estoy respondiendo esto solo porque gdb ya no es parte de Xcode. – kakyo

+0

Lo sentimos, debería haber sido "configuración establecida target.prefer-dynamic-value run-target" – kakyo

+0

Gracias. Esa es la respuesta, ¡me alegro de que hayas publicado todo esto en 2010! –

4

Si usted tiene una lo suficientemente nueva versión de GDB, es posible que desee ver en la "información VTBL" de comandos (o tal vez se le llama "información vtable"; mi propia versión de gdb no es lo suficientemente nuevo, y entonces no puedo probar la función yo mismo).

sólo me di cuenta de la función cuando google para una respuesta a esta pregunta y me di cuenta de mensajes a la lista de correo GDB alrededor del año 2012, sobre todo éste de marzo de 2012:

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