Type demangling for user readable output

Tries to demangle type names if possible using C++ ABI demangling (GCC/Clang) or UnDecorateSymbolName (MSVC).

See https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html for GCC/Clang details and https://learn.microsoft.com/en-us/windows/win32/api/dbghelp/nf-dbghelp-undecoratesymbolname for MSVC.

Example: Introducing an error in TRM ModelSetting (duplicate SolidDensityModel<DisplacementDim> model evaluation) the runtime check returned before the changes:

info: Checking correct model evaluation order in the constitutive setting.
error: Output N10ProcessLib23ThermoRichardsMechanics16SolidDensityDataE of model N10ProcessLib23ThermoRichardsMechanics17SolidDensityModelILi2EEE is computed more than once.
critical: /home/naumov/w/ogs/s/ProcessLib/ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/ConstitutiveSetting.cpp:36 checkCorrectModelEvalOrder() 

and after the changes:

info: Checking correct model evaluation order in the constitutive setting.
error: Output ProcessLib::ThermoRichardsMechanics::SolidDensityData of model ProcessLib::ThermoRichardsMechanics::SolidDensityModel<2> is computed more than once.
critical: /home/naumov/w/ogs/s/ProcessLib/ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/ConstitutiveSetting.cpp:36 checkCorrectModelEvalOrder() 
Edited by Dmitri Naumov

Merge request reports

Loading