Undecorated v-table entries for inline virtual functions
lvc opened this issue · 0 comments
lvc commented
Sometimes the dladdr function fails to find some symbol names in the v-table.
Output of vtable-dumper /usr/lib64/libQt5Gui.so.5.4.2
:
Vtable for QImageTextureGlyphCache
_ZTV23QImageTextureGlyphCache: 10 entries
0 (int (*)(...)) 0
8 (int (*)(...)) (& _ZTI23QImageTextureGlyphCache)
16 (int (*)(...)) QImageTextureGlyphCache::~QImageTextureGlyphCache()
24 (int (*)(...)) QImageTextureGlyphCache::~QImageTextureGlyphCache()
32 (int (*)(...)) QImageTextureGlyphCache::createTextureData(int, int)
40 (int (*)(...)) QImageTextureGlyphCache::resizeTextureData(int, int)
48 (int (*)(...)) 0x32d210
56 (int (*)(...)) QImageTextureGlyphCache::fillTexture(QTextureGlyphCache::Coord const&, unsigned int, QFixed)
64 (int (*)(...)) 0x32d220
72 (int (*)(...)) 0x32d230
The tool can't find symbol names for 0x32d210
, 0x32d220
and 0x32d230
.
The g++ -fdump-class-hierarchy ./qtextureglyphcache_p.h
returns for this class:
Vtable for QImageTextureGlyphCache
QImageTextureGlyphCache::_ZTV23QImageTextureGlyphCache: 10u entries
0 (int (*)(...))0
8 (int (*)(...))(& _ZTI23QImageTextureGlyphCache)
16 (int (*)(...))QImageTextureGlyphCache::~QImageTextureGlyphCache
24 (int (*)(...))QImageTextureGlyphCache::~QImageTextureGlyphCache
32 (int (*)(...))QImageTextureGlyphCache::createTextureData
40 (int (*)(...))QImageTextureGlyphCache::resizeTextureData
48 (int (*)(...))QTextureGlyphCache::glyphPadding
56 (int (*)(...))QImageTextureGlyphCache::fillTexture
64 (int (*)(...))QTextureGlyphCache::maxTextureWidth
72 (int (*)(...))QTextureGlyphCache::maxTextureHeight
The QTextureGlyphCache::*
inline virtual methods names are missed in the vtable-dumper
output.