Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undecorated v-table entries for inline virtual functions #5

Open
lvc opened this issue May 10, 2016 · 0 comments
Open

Undecorated v-table entries for inline virtual functions #5

lvc opened this issue May 10, 2016 · 0 comments

Comments

@lvc
Copy link
Owner

lvc commented May 10, 2016

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.

@lvc lvc changed the title Missed v-table entries Undecorated v-table entries for inline virtual functions May 10, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant