ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Visual C++ Compiler Generated Functions
    Computer/Programming 2008. 10. 7. 21:51
    Visual C++ Compiler generates the following functions.

    Decorated Name Undecorated Name Meaning
    ?0 
    constructor
    ?1 
    destructor
    ?2  operator new 
    ?3  operator delete 
    ?4  operator = 
    ?5  operator >> 
    ?6  operator << 
    ?7  operator ! 
    ?8  operator == 
    ?9  operator != 
    ?A  operator [] 
    ?B  operator type 
    ?C  operator -> 
    ?D  operator * 
    ?E  operator ++ 
    ?F  operator -- 
    ?G  operator - 
    ?H  operator + 
    ?I  operator & 
    ?J  operator ->* 
    ?K  operator / 
    ?L  operator % 
    ?M  operator < 
    ?N  operator <= 
    ?O  operator > 
    ?P  operator >= 
    ?Q  operator , 
    ?R  operator () 
    ?S  operator ~ 
    ?T  operator ^ 
    ?U  operator | 
    ?V  operator && 
    ?W  operator || 
    ?X  operator *= 
    ?Y  operator += 
    ?Z  operator -= 
    ?_0  operator /= 
    ?_1  operator %= 
    ?_2  operator >>= 
    ?_3  operator <<= 
    ?_4  operator &= 
    ?_5  operator |= 
    ?_6  operator ^= 
    ?_7  $vftable  compiler-generated “vftable” 
    ?_8  $vbtable  compiler-generated “vbtable” 
    ?_9 
    “vcall” 
    ?_A 
    “typeof” 
    ?_B 
    compiler-generated “local static guard” 
    ?_C 
    compiler-generated string literal 
    ?_D  __vbaseDtor  compiler-generated “vbase destructor” 
    ?_E  __vecDelDtor  compiler-generated “vector deleting destructor” 
    ?_F  __dflt_ctor_closure  compiler-generated “default constructor closure” 
    ?_G  __delDtor  compiler-generated “scalar deleting destructor” 
    ?_H  __vec_ctor  compiler-generated “vector constructor iterator” 
    ?_I  __vec_dtor  compiler-generated “vector destructor iterator” 
    ?_J  __vec_ctor_vb  compiler-generated “vector vbase constructor iterator” 
    ?_K  $vdispmap  compiler-generated “virtual displacement map” 
    ?_L  __ehvec_ctor  compiler-generated “eh vector constructor iterator” 
    ?_M  __ehvec_dtor  compiler-generated “eh vector destructor iterator” 
    ?_N  __ehvec_ctor_vb  compiler-generated “eh vector vbase constructor iterator” 
    ?_O  __copy_ctor_closure  compiler-generated “copy constructor closure” 
    ?_P 
    “udt returning” 
    ?_Q 
    “EH” 
    ?_R 
    “RTTI” 
    ?_S  $locvftable  compiler-generated “local vftable” 
    ?_T  __local_vftable_ctor_closure  compiler-generated “local vftable constructor closure” 
    ?_U  operator new [] 
    ?_V  operator delete [] 
    ?_W 
    “omni callsig” 
    ?_X  __placement_delete_closure  compiler-generated “placement delete closure” 
    ?_Y  __placement_arrayDelete_closure  compiler-generated “placement delete [] closure” 
    ?__A  __man_vec_ctor  compiler-generated “managed vector constructoro iterator” 
    ?__B  __man_vec_dtor  compiler-generated “managed vector destructor iterator” 
    ?__C  __ehvec_copy_ctor  compiler-generated “eh vector copy constructor iterator” 
    ?__D  __ehvec_copy_ctor_vb  compiler-generated “eh vector vbase copy constructor iterator” 


    It's a function the compiler generates to implement the delete operator. It calls the object's
    destructor, then frees the object's memory.  If you new and deletearrays of objects, you will see the "vector deleting destructor"instead.

    The scalar deleting destructor takes a flag parameter on the stackthat tells it whether or not to free the memory.  I seem to recallreading about a bug in some versions of VC++ where, if you usedplacement new to create an object, then explicitly invoked itsdestructor, it would call the scalar deleting destructor, but withoutpushing the flag parameter. This would both mess up the stack, andpseudo-randomly try to free the object's memory.

    http://groups.google.com/group/microsoft.public.vc.language/browse_frm/thread/3777c5e8fb844cab?hl=en&lr=&ie=UTF-8&oe=utf-8&rnum=3&prev=/groups%3Fq%3Dscalar%2Bdeleting%2Bdestructor%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26selm%3D3343E2DE.7553%40platinum.com%26rnum%3D3

    more explanation is at http://www.byteclub.net/blog/zooba/?cat=3

Designed by Tistory.