Estoy escribiendo un proyecto en C++ y creando un DAG de varios tipos relacionados con la herencia. He colocado un punto de interrupción después de la construcción y me gustaría ver el DAG. Sin embargo, el depurador solo mostrará la clase base. Nombrará el tipo más derivado junto a la entrada __vfptr
, pero no puedo ver sus contenidos y verificar que sean lo que espero que sean. ¿Hay alguna manera de ver el tipo más derivado en la ventana Locales directamente?Ver el tipo más derivado en el depurador
Estoy orientada a x64, si es relevante.
El depurador solo puede adivinar el tipo real, C++ no admite la reflexión. Use una expresión moldeada: * (foo *) ptr –
@Hans: el depurador conoce el tipo exacto. Aparte de cualquier argumento teórico que pueda hacer, literalmente nombra el tipo exacto en el depurador. Dice claramente '__vfptr (tipo más derivado)'. Simplemente no puedo * explorar * el valor. – Puppy
Conoce el tipo exacto del puntero de la tabla v, puede determinar su valor. Lo que no sabe es el tipo de objeto que contiene ese puntero. ¿Has probado el elenco (se ha comido, '* (foo *) ptr') –