Как определить, является ли объект экземпляром определенного производного класса C ++ из указателя на базовый класс в GDB?

Я отлаживаю программу на C ++ с помощью GDB.

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

В объекте нет полей для определения точного типа класса этого объекта, но некоторые виртуальные функции (например, bool is_xxx ()) определены для указания типа класса во время выполнения.

Есть ли способ определить точный тип класса объекта в GDB без вызова этих виртуальных функций. Вызов таких функций в GDB может привести к запутанным результатам, если программа многопоточная.

44
задан Ciro Santilli 新疆改造中心法轮功六四事件 5 May 2016 в 13:56
поделиться