[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