在调试有故障转储的地方时,vtable 指针是内存中对象的良好指标。
我想在 gdb 中做的是能够通过执行类似的操作来查询 vtable
info address 'vtable for Bar'
但是,我发现的唯一方法(不需要对象的有效实例)是使用损坏的 vtable 名称。
例子:
info address _ZTV3Bar
尝试找出 vtable 重命名的名称并不是世界末日,但它很烦人(即使用 objdump -t myexecutable)。
有谁知道我可以以一种不那么痛苦的方式(不需要该类型的有效实例)找到类型的 vtable 地址的方法?
- 规则:不能要求有问题的对象的有效实例并在对象中找到 vtable 指针。