[fpc-pascal] Darwin i386

Andrew Brunner andrew.t.brunner at gmail.com
Sun May 20 17:00:07 CEST 2012


On Sun, May 20, 2012 at 8:52 AM, Jonas Maebe <jonas.maebe at elis.ugent.be> The
above was a question relating to "... with the exception of threads calling
methods via synchronize (so I can debug)." I.e., what are the exact things
you are doing, what is happening, and what are the expected results
regarding trying to debug threads calling methods via synchronize (which, I
assume, works on other platforms but not on Mac OS X).

Sorry.  Kinda missed that.  Debugging heavily threaded code under linux has
proved to be difficult.  So I have developed a directive that triggers
threaded code to execute via synchronize.

I recently cleared all linux issues with a core networking engine (both
client and server) and moved to Apple to test.  On Apple I needed to step
into code that normally runs reentrant from the main thread, from other
threads, and from other threads via synchronize.

On Linux all was fine.  On Apple - I was seeing thread locking to my
network engine in client mode.  Same code, different operation system.  I
traced all the way to the signaling mechanisms in the classes unit.  The
thread went into wait infinite and never executed the method.

So instead of complaining about it here - I decided to method scheduling
system for the engine.  This way when the engine is idle it can execute
methods in its own thread space.  During debug mode I run engine
callbacks via synchronize.  On linux I get no problems.  On Apple I had
gotten tons of timeout errors and weird behavior that takes 5-10 seconds to
step over or into each line!

So I have gdb 7.4.1 from source installed and I can't test.  I may have to
revert back to gdb stock just to get back to work :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20120520/3e63328f/attachment.html>


More information about the fpc-pascal mailing list