[fpc-pascal] random "Disk Full" exceptions
Marc Santhoff
M.Santhoff at t-online.de
Sat Oct 20 09:28:35 CEST 2007
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)^));
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
file.
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,
Marc
More information about the fpc-pascal
mailing list