I have a (Delphi) background server application, which runs fine when compiled for Windows, but which intermittandly crashes under Linux.The problem seems to be related pointer operation errors in the code, but under Windows these have never given an Exception, or causes the program any problems, but under Linux causes an immediate crash, without any Exception or any log from the Kernel.
For example this will cause an immediate crash:
try stream := TMemorystream.create; Reader := TReader.create(stream,1024); try // finally stream.free; Reader.free; // crash. Nothing left. end;except// never reachedend;
Under Windows this pointer error is not causing problems.
So somewhere else in the 250,000 lines of code there must be a similar pointer error, but I cannot find a way to located it, because it only happens with a 'production' server which is used by clients, not when I run it on my development PC.
Why does the try / except not work here at all?Is there a system in Linux which can monitor the program and trace down where this happens?