This is strange and I don't know if I should report it as a bug
If I walk the Mach-O class symbols in the executable (skipping indirect symbols) and get the VMT pointer with dlsym, then I do get a valid vTypeInfo pointer from the VMT pointer, except for these symbols
vTypeInfo = -16, theSymbolName = _VMT_$SYSUTILS$_$TMARSHALLER_$__$$_TDEFERBASE, vInstanceSize = 8, vInstanceSize2 = -8 vTypeInfo = -24, theSymbolName = _VMT_$SYSUTILS$_$TMARSHALLER_$__$$_TDEFERFREEMEM, vInstanceSize = 16, vInstanceSize2 = -16 vTypeInfo = 7811903956714416498, theSymbolName = _VMT_$SYSUTILS$_$TMARSHALLER_$__$$_TDEFERMOVETOSBANDFREE, vInstanceSize = 32, vInstanceSize2 = -32
The VMT pointer as such seems to be correct, because vInstanceSize = - vInstanceSize2. But the vTypeInfo is not a valid memory pointer. Also, do we have qualified names here ?? The compiler and rtl were compiled without qualified names.
Is this a bug or one special case ? Regards, Adriaan van Os
_______________________________________________ fpc-devel maillist - [email protected] https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
