[Lazarus] Tracking down an intermittent termination exception

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Tue Mar 26 10:39:50 CET 2013


I've got a program here with main and background thread, it doesn't do 
anything fancy like explicitly hooking the event loop. Intermittently it 
displays something like this during termination:

An unhandled exception occurred at $08080639 :
EInOutError :
   $08080639  CDONECRITICALSECTION,  line 503 of ../unix/cthreads.pp
   $08075B84  DONECRITICALSECTION,  line 199 of 
/usr/local/src/fpc/fpcbuild-2.6.2/fpcsrc/rtl/inc/thread.inc
   $080D5404  COMMONCLEANUP,  line 1751 of 
/usr/local/src/fpc/fpcbuild-2.6.2/fpcsrc/rtl/objpas/classes/classe 
s.inc
   $080DD8A8  CLASSES_finalize,  line 51 of ../unix/classes.pp
   $08072DAF  FINALIZEUNITS,  line 833 of 
/usr/local/src/fpc/fpcbuild-2.6.2/fpcsrc/rtl/inc/system.inc
   $08072F28  INTERNALEXIT,  line 886 of 
/usr/local/src/fpc/fpcbuild-2.6.2/fpcsrc/rtl/inc/system.inc
   $08073038  DO_EXIT,  line 937 of 
/usr/local/src/fpc/fpcbuild-2.6.2/fpcsrc/rtl/inc/system.inc
   $0805E44B  main,  line 69 of BorgUM.lpr
   $B6E57CA6

Looking at classes.inc, I see that the affected line is

   DoneCriticalSection(SynchronizeCritSect);

Assuming that this is a problem in my own code, what sort of thing 
should I be looking for?

Laz+LCL 1.1, FPC 2.6.2, Linux x86. This might in practice happen most 
often when X is tunneled over ssh: could this mess up LCL termination?

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list