Как переключить процесс в окне Visual Studio Diagnostic Tools?

В Visual Studio 2017 я хотел бы использовать окно " Диагностические инструменты" для анализа моих модульных тестов (x64), написанных на С#. Однако он всегда отображает сообщение

Отлажено несколько процессов. В этом окне отображаются только данные для testhost.exe(PID: xxxxx).

VS Diagnostic Tools Window Screenshot

testhost.exe не очень помогает мне, мне нужен QTAgent.exe. В окне Процессы я вижу, что отладчик подключен к обоим процессам, QTAgent.exe и testhost.exe. Но я не могу найти способ переключения на QTAgent.exe в окне "Диагностические инструменты". Как вы можете это сделать?

Отключение от testhost.exe не помогает.

Ответы

Ответ 1

В данный момент в отладчике активен только один процесс. Вы можете установить активный или текущий процесс на панели инструментов "Отладка" или в окне "Процессы". Для переключения между процессами оба процесса должны находиться в режиме разрыва.

На панели инструментов "Отладка" выберите "Процесс", чтобы просмотреть окно "Список процессов". Выберите процесс, который вы хотите назначить в качестве текущего процесса. enter image description here

Если панель инструментов "Отладка" не отображается, выберите "Инструменты", "Настроить". На вкладке Панели инструментов выберите "Отладка".

Откройте окно "Процессы" (сочетание клавиш Ctrl + Alt + Z), найдите процесс, который вы хотите установить в качестве текущего процесса, и дважды щелкните его.

enter image description here

Текущий процесс отмечен желтой стрелкой.

Переход к проекту устанавливает его в текущий процесс для целей отладки. Любое окно отладки, которое вы просматриваете, покажет состояние текущего процесса, и все команды шага влияют только на текущий процесс.

Ответ 2

Этот поток немного старый, но я нашел обходное решение.

Мне нужно было увидеть Diagnostics для процесса iisexpress.exe при отладке Azure WebRole, но вместо этого инструмент Diagnostics показывал данные для процесса WaIISHost.exe.

Это то, что я сделал:

1- Открыл окно Процессы (Ctrl + Alt + Z) во время отладки моего WebRole в Visual Studio.

2- В окне Процессы я щелкнул правой кнопкой мыши по iisexpress.exe и выбрал "Отделить процесс".

3- Открыл вторую Visual Studio и открыл то же самое решение, на котором я работал на первом.

4- Пошел в меню "Отладка/Привязка к процессу".

5- Выбранный iisexpress.exe из запущенных процессов, а затем я наконец увидел данные для iisexpress.exe

Примечание. Если вы не отсоединяетесь от целевого процесса на первой Visual Studio, ваша вторая визуальная студия не позволит вам подключиться к ней, потому что она будет жаловаться, что уже есть сеанс отладки в том же процессе.

Примечание 2: Отключенный процесс можно оставить сиротой, а это означает, что при остановке отладчика Visual Studio он может не убить отсоединенный процесс, и вам, возможно, придется вручную его убить с помощью проводника процессов или что-то в этом роде.

Ответ 3

Не 100% решение, но его можно использовать, если вас интересует только профилирование использования процессора:

  1. Отключить средства диагностики во время отладки ("Параметры" → "Отладка" или просто выполнить поиск "диагностика")
  2. Установите точку останова в первой строке кода вашего модульного теста.
  3. Откройте "Профилировщик производительности" (ALT + F2) и присоедините его к "QTAgent32.exe"
  4. Продолжить отладку (F5)
  5. Проверьте, куда уходит процессорное время:

enter image description here