Вы можете переключаться между отлаживаемыми процессами и потоками этих процессов при помощи панели инструментов Debug Location (рис. 10.41). Слева находится список процессов. Здесь вы можете выбрать процесс для просмотра его подробностей (в том числе и выполняющихся потоков). Однако многие многопоточные приложения выполняются в одном процессе.
Список Thread в панели инструментов показывает потоки выбранного процесса. Этот список показан на рис. 10.41.
Обратите внимание, что потоки показаны вместе со своими идентификаторами, именами и флажками. Вы можете выбрать поток в этом списке для того, чтобы перейти к соответствующему коду. Если с выделенным потоком не связано никакого исходного кода, то имя такого потока при его выделении будет показано красным цветом. Вы можете отфильтровать этот список для того, чтобы видеть только потоки с флажками (для этого надо нажать вторую кнопку справа от списка Thread (кнопка с двумя флажка-1 ми)). Первая кнопка справа просто выставляет (или убирает) флажок для текущего активного потока. Наконец, список справа показывает стек вызовов. Активный кадр стека — это то, что показано в окнах отладки (наблюдения, Locals, Autos и т. д.).
Вы можете также управлять потоками из окна Threads (меню Debug | Windows | Threads). Здесь вы увидите перечисленными все потоки данного процесса. Пример показан на рис. 10.42. Обратите внимание, что левая часть списка отображает потоки с флажками. В нашем примере мы пометили флажками два потока. Обратите также внимание, что эти потоки именованные. Это позволяет легко распознать их в столбце Name.
В окне Threads имеется несколько опций. Они показаны в контекстном меню на рис. 10.42. Обратите внимание на опцию Switch to Thread. Она позволяет вам переключать активный отлаживаемый поток. Активный поток показан в списке потоков с желтой стрелкой (справа от флажка). Переключение активного потока приведет к изменению контекста отладки и содержимого отладочных окон. Вы можете также сделать Freeze (сделать паузу) для потока при помощи этого контекстного меню. Это эквивалентно приостановке потока.