PDB has incomplete vtable definition for type with subclasses
Version and Platform (required):
- Binary Ninja Version: 4.1.5167-dev
- OS: macOS
- OS Version: 14
- CPU Architecture: M1
Bug Description: One of the VTables in my pdb was loaded missing a member, causing the size and subclasses to be slightly wrong. Upon further investigation in the pdb itself, this type actually had multiple definitions, leading to warnings being printed about them conflicting.
Steps To Reproduce:
- Open Archive.zip
- Observe warnings for "[Default warn] Found two types both named
Animal, only one will be used." - Observe Animal::VTable type
- Observe it does not have __vecDelDtor like many of the other VTable types
- Observe symbol at 0x409bc0 clearly showing that missing member in the VTable
Expected Behavior: I expected __vecDelDtor to be on the vtable type considering it is present when the VTables are defined in code. I'm not sure what I expected in regards to the multiple copies of a type being defined, maybe some sort of deduplication?
Additional Information: Not strictly a binja bug, that pdb has like 4 definitions of Animal and some of them legitimately do / do not have that function listed as a virtual member