Подтвердить что ты не робот

Почему кастинг gdb не работает?

Я использую print (CEthPacket*) 0xeb609a0 для изучения объекта по указанному адресу и получаю A syntax error in expression, near ') 0xeb609a0'.

Что я делаю неправильно?

EDIT: CEthPacket - это класс С++, и я нахожусь на gdb Fedora (6.8-37.el5).

4b9b3361

Ответ 1

Я просто столкнулся с подобной проблемой, и, по моему коллеге, я узнал, что вам нужно предоставить пространство имен, в котором класс принадлежит в пределах одной кавычки, как показано ниже:

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

Ответ 2

Вы не сказали, на какой платформе, какая версия GDB или что такое CEthPacket.

Мое первое предположение заключается в том, что вы должны попробовать print (struct CEthPacket *) 0xeb609a0.

Ответ 3

Я просто столкнулся с очень похожей ошибкой. Это было вызвано тем, что я пытался ссылаться на объект, который не определен в области текущего кадра стека. Попробуйте перейти к кадру стека, где определен объект CEthrPacket.