Fondamentalement, je veux obtenir typeid(*this).name()
, c'est-à-dire le vrai type de this
.
Je veux obtenir cela dans GDB (sans modifier le code source). J'ai essayé print typeid(*this)
mais il est dit que typeid
est inconnu (car je ne l'ai pas inclus dans le fichier source).
Utilisez la commande ptype
, comme ceci:
(gdb) ptype 42
type = int
La commande 'ptype [ARG]' imprime le type.
Cette question peut être liée: vtable dans la classe polymorphe de C++ utilisant gdb :
(gdb) help set print object
Set printing of object's derived type based on vtable info.
Ce n'est pas exactement typeid () mais il devrait montrer le vrai type d'objet lors de l'inspection d'un pointeur polymorphe (par exemple this
dans une classe de base). Naturellement, ne fonctionne que pour les classes avec une table virtuelle (c'est-à-dire au moins une méthode virtuelle), tout comme typeid
.