While trying to handle cases where multiple symbols could be aliased, we
were trying to relate a symbol to its class by trying to find the
class' demangled name as a substring of the symbol's mangled name. This
might lead to errors when the class is in a qualified namespace (due to
C++ mangled names having fully qualified namespaces of the form
<num-letters><namespace>. Having <num-letters> interspersed between namespaces
makes finding the substring inaccurate). Now, we try find the class' demangled
name in the demangled symbol name instead.
Bug: 80088849
Test: Without this change, vndk-vtable-dumper for
libstagefright_bufferqueue_helper.so has an incorrect entry in the
vtable for android::GraphicsBuffer at offset 20 :
_ZNK7android6VectorIiE12do_constructEPvj
Test: With this change, vndk-vtable-dumper for
libstagefright_bufferqueue_helper.so has the correct entry in the
vtable for android::GraphicsBuffer at offset 20 :
_ZN7android19GraphicBufferSource23onSidebandStreamChangedEv
Change-Id: I16507f3cef4d9c252aae3d27bef34563e2679703
To compare vtable in VTS ABI test, add the option -mangled to have
vndk-vtable-dumper print mangled function names. If the option is not
specified, print demangled names.
Bug: 37488823
Test: tests/test_vndk_vtable_dumper.py
Test: vndk-vtable-dumper -mangled libhidlbase.so
Change-Id: I0a57089425298d311e2366adb933c4c752a37b03
This commit renames llvm-figure-out-vtables to vndk-vtable-dumper.
Test: ./tests/test_vndk_vtable_dumper.py
Change-Id: I614a1fb0e8ddc89b32a8245322b0f198a363f6a0