gdb/lldb C++类的虚析构函数在虚函数表的数目为2?
#include <iostream>
class A {
public:
A() { std::cout << "A()" << std::endl; }
virtual ~A() { }
};
int main(void)
{
A a;
return 0;
}
lldb 调试:lldb-340.4.119
(lldb) expr -G a -- (*(void ***)&a)[0]
(void *) $1 = 0x0000000100000ed0 a.out`A::~A() at destructor.cpp:6(lldb) expr -G a -- (*(void ***)&a)[1]
(void *) $2 = 0x00000001000010b0 a.out`A::~A() at destructor.cpp:6
gdb调试:GNU gdb (GDB) Fedora 7.9.1-20.fc22
(gdb) p /a (*(void ***)&a)[0]
$2 = 0x4009f0 <A::~A()>
(gdb) p /a (*(void ***)&a)[1]
$3 = 0x400a20 <A::~A()>