Instead of skipping the vtable entry, vndk-vtable-dumper now prints
undemanglable vtable entries.
Vtables should always contain C++ symbols (mangled symbols). The only
exceptions are when vtables contain pure virtual or deleted
virtual functions. In that case the vtable may contain C symbols
(unmangled symbols) of __cxa_pure_virtual or __cxa_deleted_virtual.
In that case we just print the undemanglable C symbol as its mangled and
demangled name, though technically its not mangled.
Bug: 111968285
Test: m vndk-vtable-dumper
Test: vndk-vtable-dumper android.frameworks.displayservice@1.0.so
Test: vndk-vtable-dumper android.frameworks.displayservice@1.0.so -mangled
Change-Id: I4d1c99ba23a327fd5709233a38d309180c9cfd43
This commit makes vndk-vtable-dumper to check ELF file machine arch
(x86/x86_64/arm/arm64) when detecting relocation type, as relocation
type constants such as R_ARM_ABS32, R_386_32 are not gauranteed to be
unique across different machines.
Test: m vndk-vtable-dumper
Test: vndk-vtable-dumper libziparchive.so # with x86/x86_64/arm/arm64 arch
Change-Id: I58d6d7bff7b7eb16e96cbe02f4989e45a17fd295
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