On Mon, 6 Aug 2001, Frank Heckenbach wrote:
Adam Naumowicz wrote:
Can you simply explain what is the meaning of the boolean parameters of InstallSignalHandler ?
Restart means whether interrupted system calls should be retried after the handler (not supported on all systems AFAIK). UnlessIgnored means you only want to set the handler if the signal isn't ignored, anyway.
I see.
Can one of them prevent from appearing the '^C' in the console (calling the default handler I suppose)?
I suppose (can't make sure right now) this is done by the terminal handler before actually generating the signal. So you't probably have to change the terminal settings (see termios, but there's no general Pascal interface -- there's the procedure SetInputSignals; it's quite specialized, just for emulating some routine in the BP compatible Dos units, but maybe it might help you).
That is really of not big importence for me, just asked to check if there is a easy possibility to do that 'cosmetic' stuff.
I used the debugger from RHIDE and it seems that the error occurs when calling a 'goto' statement. I actually tried to comment the block of FreeMems prepending it, but the error still existed in the same place. So I suppose the most probable reason is some memory corruption during execution of the program ?
I could likely be corruption of data on the stack (which overwrites some frame pointer used after the goto or something). If it's a non-local goto, it could well also be a GPC bug, since these are quite tricky and not very well tested ...
The code works good with Delphi, Kylix, FPC and it used to work with BP, however the memory layout is different in all that cases and it is not in fact a good proof, that the error is caused by GPC ... The problem is that the code is so large and unfortunatelly filled up with tricks that gave some optimalisation 15 years ago. Thanks, Adam Naumowicz
-------------------------------------- WWW: http://math.uwb.edu.pl/~adamn/ --------------------------------------