[fpc-pascal] random "Disk Full" exceptions

Marc Santhoff M.Santhoff at t-online.de
Sat Oct 20 09:28:35 CEST 2007


when running a program interacting with a c library accessing the disc
drive and writing some informational strings to "stderr" there are

   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))^) + ' - ' +

fx is an offset holding 33 and adr is a pointer into a block of memory
alocated with getmem. The output is for debugging only.

The error is happening when only read calls are made to the underlying

If run in gdb the only message is:

   Program exited with code 0331.

so no backtrace or the like.

Is there any debugging technique or some other information that can help
me finding the cause?

If I use the heap trace unit (fpc -gh) the program fails at the first
few lines, although apparently working correctly at that spot ... maybe
a consequence of doing a lot pointer calculations.

Helpless regards,

More information about the fpc-pascal mailing list