Hello FPC, I'm now running:
Lazarus 0.9.31 r34428 FPC 2.7.1 i386-win32-win32/win64 r19895 With this setup something strange is happening in a project of mine, when I close the project a SIGSEGV happends in the win32callback.inc of LCL without callback stack trace and with all local variables using a base pointer of nil (gdb messages like 'window unable to read address 0x8'). This seems to have nothing in relation with fpc itself, but as soon as I do any string operation inside the procedure everything starts to work as it should. In my first test I wrote a simple "writeln(integer(@window))" before the line that crashes everything, but before the crash, the value of @window is normal. Then I try to write 2 values so use "writeln(strtoint(window)+' '+strtoint(msg))' and suddenly everything starts to work. I know that such operation can change the code generation and hide an error, so I simple declare a "var" section like: var s: string; begin and remove the writeln so the only change to the code is the variable declaration and now it works. Does anybody have an idea how can I debug this problem ? Assembler code looks the same in both cases. To me it looks like the code is trying to free some strings or interfaces but at a point where the manager of automated types has been "disabled" so the declaration of a new ansistring "reconnects" it. Maybe it is a crazy idea but is the only one that I have now. -- Best regards, José _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel