Ответ 1
См. Bugtracker
В принципе, я хочу получить typeid(*this).name()
, то есть реальный тип this
.
Я хочу получить это в GDB (без изменения исходного кода). Я пробовал print typeid(*this)
, но он говорит, что typeid
неизвестен (потому что я не включил его там в исходный файл).
См. Bugtracker
Используйте команду ptype
, например:
(gdb) ptype 42
type = int
Этот вопрос может быть связан: vtable в полиморфном классе С++ с использованием gdb:
(gdb) help set print object
Set printing of object derived type based on vtable info.
Это не точно typeid(), но он должен показывать реальный тип объекта при проверке полиморфного указателя (например, this
в базовом классе). Естественно работает только для классов с vtable (т.е. Хотя бы один виртуальный метод), но также typeid
.
Команда ptype [ARG] 'напечатает тип.