### Windowing System Lockups

Multithreaded programs have a greater tendency than single-thread programs to cause your windowing system to lock up, because of such problems as semaphore deadlocks and live threads waiting for results from threads that have inadvertently died. When the debugging of a multithreaded program hangs your windowing system, you have no way of continuing to debug the faulty program, because the debugger uses the windowing system as well.

To solve such problems, you can use the debugger's remote debug feature. Install the debugger on both machines, start a remote debug server session on the machine you want to run the program on, and run the debugger from the other machine. If your program hangs the windowing system on its own machine (the remote machine), you can still step through it because the windowing system on your local machine is still operational.

Debugging Threads
Remote Debugging