我的一个C ++程序中有一个有趣的问题。显然,我的其中一个类的vtable在程序执行期间被弄乱了。在gdb会话中,我发现如果直接调用对象的方法会成功,但是如果我使用指针或引用,最终会遇到完全不相关的类的析构函数,该类不会在任何时候实例化。this当然,无需更改-Pointer。
this
假设我的观察是正确的,如何在gdb中观察对象的vtable?我在Linux上使用gcc,我的gdb版本是GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08。
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
c++ gcc gdb virtual-functions
c++ ×1
gcc ×1
gdb ×1
virtual-functions ×1