[fpc-devel] Manual reload of a DLL snapshot (with relocations) causes multiple AV
Gennadiy Poryev
core at barvinok.net
Sat Jan 7 09:42:41 CET 2012
Thank you all for all the helpful suggestions :) Problem is now solved.
As I suspected earlier, RTL uses quite a lot of absolute addressing while calling its internal routines. These addresses are stored both in initialized and uninitialized data sections of DLL (.data and .bss respectively).
While addresses stored in .data are fixed by relocations, addresses in .bss are not, and are initialized to zero by the windows DLL loader. So does my engine now, and everything started to work just fine.
Best regards,
Gennadiy.
More information about the fpc-devel
mailing list