https://stackoverflow.com/a/6614369/1091587當您讀取使用「gcc3」類型名稱編譯的程序的符號表時,會出現析構函數類型(D0,D1,D2)的快速概要截斷。還有相應的構造函數C0/C1/C2。使用g ++ - 4.7(可能更早),會出現一個新的ctor/dtor對,即C5/D5,但僅作爲調試符號。什麼是海灣合作委員會名稱中的「析構函數組」符號
$ cat i.cpp
class X { public: virtual ~X() {}; };
int main(void) { X x; return 0; };
$ g++ -c i.cpp
$ nm i.o | grep 5
0000000000000000 n _ZN1XC5Ev
0000000000000000 n _ZN1XD5Ev
$ c++filt -n _ZN1XC5Ev _ZN1XD5Ev
X::X()
X::~X()
的demangler源調用D5對象是「gnu_v3_object_dtor_group」,但究竟什麼是析構函數組又是什麼好?鏗鏘聲++ - 3.3不會發出它,http://gcc.gnu.org/ml/gcc-patches/2011-11/msg00383.html表明它可能與gcc中的新事務內存功能有關。