[fpc-devel] Invalid vTypeInfo pointer for _VMT_$SYSUTILS$_$TMARSHALLER

Adriaan van Os adriaan at adriaan.biz
Sat Aug 29 17:37:22 CEST 2026


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20260829/0dbbed59/attachment.htm>


More information about the fpc-devel mailing list