46 votes

Pourquoi le casting gdb ne fonctionne pas?

J'utilise print (CEthPacket*) 0xeb609a0 pour examiner un objet à l'adresse donnée et obtenir A syntax error in expression, near ') 0xeb609a0'.

Qu'est-ce que je fais mal?

EDIT: CEthPacket est une classe C ++ et je suis sur gdb Fedora (6.8-37.el5).

72voto

Tsh Points 251

Je viens de rencontrer un problème similaire et, d'un de mes collègues, j'ai appris que vous devez fournir l'espace de noms auquel la classe appartient entre guillemets simples comme suit:

(gdb) p ('MyScope :: MyClass' *) ptr;

5voto

Employed Russian Points 50479

Vous n'avez pas dit sur quelle plate-forme, quelle version de GDB ou quel est CEthPacket .

Ma première supposition est que vous devriez plutôt essayer print (struct CEthPacket *) 0xeb609a0 .

-1voto

David Shirley Points 11

Je viens de rencontrer une erreur très similaire. Cela est dû au fait que j'essayais de référencer un objet qui n'est pas défini dans la portée du cadre de pile actuel. Essayez de passer à un cadre de pile où l'objet CEthrPacket est défini.

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