GDB: показать typeinfo некоторых данных - PullRequest
27 голосов
/ 05 марта 2012

По сути, я хочу получить typeid(*this).name(), то есть реальный тип this.

Я хочу получить это в GDB (без изменения исходного кода). Я попытался print typeid(*this), но он говорит, что typeid неизвестно (потому что я не включил его в исходный файл).

Ответы [ 3 ]

36 голосов
/ 18 июня 2015

Используйте команду ptype, например:

(gdb) ptype 42
type = int
10 голосов
/ 08 января 2014

Команда 'ptype [ARG]' напечатает тип.

10 голосов
/ 26 июля 2012

Этот вопрос может быть связан: vtable в полиморфном классе C ++ с использованием gdb :

(gdb) help set print object
Set printing of object's derived type based on vtable info. 

Это не совсем typeid (), но он должен показывать реальный тип объекта при проверке полиморфного указателя (например, this в базовом классе). Естественно, работает только для классов с виртуальной таблицей (то есть, по крайней мере, один виртуальный метод), но так же typeid.

...