### Debugging Threads

Note: The sections on debugging threads are intended primarily for users with limited knowledge of developing multithreaded programs, in particular, those whose programming experience is mainly with single-threaded environmentssuch as Windows 3.1.

Multithreaded programs may behave differently in the debugger than they do when run normally. Because debugger features such as single-stepping and certain kinds of breakpoints involve processing overhead, running a multithreaded program within the debugger may affect the timing of thread switches.If you are experiencing problems, you can use the Threads pane of the Session Control window to enable or disable threads so that you can debug problems related to thread timing.

The main problems you are likely to encounter in debugging multithreaded programs are timing and deadlock problems. You should not assume that a timing or deadlock problem that seems only to occur when your program is running within the debugger will never occur outside of the debugger. It is far more likely that the processing overhead of the debugger is merely increasing the frequency with which coding problems lead to deadlocks or thread timing errors.

Critical sections
Deadlocks and Timing Problems
Multithreaded Programs (OS/2)
MustComplete Sections
Race Conditions
Threads and C++ Class Members
Threads and Load Occurrence Breakpoints
Threads and Source Language Statements
Windowing System Lockups