77 votes

gdb : afficher les informations sur le type de certaines données

Fondamentalement, je veux obtenir typeid(*this).name() , c'est-à-dire le type réel de this .

Je veux l'obtenir dans GDB (sans modifier le code source). J'ai essayé print typeid(*this) mais il est dit que typeid est inconnu (parce que je ne l'ai pas inclus dans le fichier source).

83voto

Star Brilliant Points 108

Utilisez la commande ptype , comme ceci :

 (gdb) ptype 42
type = int

18voto

vertere Points 50

La commande 'ptype [ARG]' imprimera le type.

14voto

regnarg Points 126

Cette question peut être liée : vtable dans la classe polymorphe de C++ en 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 type d'objet réel lors de l'inspection d'un pointeur polymorphe (par exemple this dans une classe de base). Ne fonctionne naturellement que pour les classes avec une vtable (c'est-à-dire au moins une méthode virtuelle), mais il en va de même pour typeid .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X