0

I found the following symbol in Factorio's binary and found passing it through C++filt couldnt demangle it, and possible reason this could be occuring?

Done using objdump, and the detected compiler version is 4.8.4.

_ZN9MplVectorIJ13PrototypeListI20CustomInputPrototypeES0_I22EquipmentGridPrototypeES0_I13ItemPrototypeES0_I13TilePrototypeES0_I19DecorativePrototypeES0_I19TechnologyPrototypeES0_I15EntityPrototypeES0_I14RecipeCategoryES0_I12ItemSubGroupES0_I9ItemGroupES0_I14FluidPrototypeES0_I22VirtualSignalPrototypeES0_I12AmmoCategoryES0_I12RailCategoryES0_I12FuelCategoryES0_I16ResourceCategoryES0_I18EquipmentPrototypeES0_I10NoiseLayerES0_I16AutoplaceControlES0_I10DamageTypeE19RecipePrototypeListS0_I20AchievementPrototypeES0_I14ModuleCategoryES0_I17EquipmentCategoryES0_I19ModSettingPrototypeEEE11forEachImplIZNK3Map4saveER13MapSerialiserP16ProgressObserverEUlT_E0_S2_JS4_S6_S8_SA_SC_SE_SG_SI_SK_SM_SO_SQ_SS_SU_SW_SY_S10_S12_S14_S15_S17_S19_S1B_S1D_EEEvOS1L_+0x1fac
moonheart08
  • 115
  • 1
  • 9
  • I too have encountered C++ mangled symbols that `c++filt` couldn't demangle. I think sometimes it is because the binary was built with a compiler newer than the `c++filt` on the system. Is that possible here? – John Zwinck Jul 02 '17 at 02:51
  • my `c++filt` can demangle this. `GNU c++filt (GNU Binutils for Debian) 2.28` – geza Jul 02 '17 at 09:38

1 Answers1

0

Add an extra _ to the beginning of the symbol and it'll demangle properly. It's ridiculous enough that I won't reproduce the whole output here, but it begins with:

void MplVector<
    PrototypeList<CustomInputPrototype>,
    PrototypeList<EquipmentGridPrototype>,