Am Samstag, den 20.10.2007, 09:28 +0200 schrieb Marc Santhoff: > Hi, > > when running a program interacting with a c library accessing the disc > drive and writing some informational strings to "stderr" there are > thrown > > An unhandled exception occurred at $0804940D : > EInOutError : Disk Full > > exceptions randomly all over the place. The line position in the program > is constant but the amount of data processed is changing randomly. At > some runs no exception occurs at all. > > The source line is: > > writeln(stderr, '--> hit found: '+inttostr(fcnt) + ' - ' + > inttostr(PInteger(longint(adr)-longint(fx))^) + ' - ' + > floattostr(PSingle(adr)^));
Very nasty thing: The output channel is temporarily blocked and gives back "EAGAIN". This leads to exceptions thrown repeatedly which cannot be signaled because the output channel is blocked! I'm changing my practice of using stderr for debugging output, that much is sure. I know try ... except-blocks would come in handy, but I had to disable them for debugging purposes. Concluding I can say: fpc is too fast in writing for my computer! ;) Marc _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal