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


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to