При отладке, когда у вас есть аварийный дамп, указатели vtable являются хорошими индикаторами объекта в памяти.
Что я хотел бы сделать в gdb, так это иметь возможность запрашивать vtable, выполнив что-то вроде
info address 'vtable for Bar'
Однако единственный найденный мной способ сделать это (без действительного экземпляра объекта) — использовать искаженное имя для vtable.
Пример:
info address _ZTV3Bar
Это не конец света, чтобы попытаться выяснить искаженное имя vtable, но это раздражает (например, использование objdump -t myexecutable).
Кто-нибудь знает способ, где я могу найти адрес vtable типа менее болезненным способом (не требуя действительного экземпляра типа)?
- Правила: не может требовать действительный экземпляр рассматриваемого объекта и найти указатель vtable в объекте.
print *barObject
? - person Amadeus   schedule 21.08.2013info address vtable for Bar
у меня работает - person ctn   schedule 22.02.2016