Visual Studio: отлаживать несколько проектов одновременно?

Можно ли отлаживать несколько проектов одновременно в Visual Studio?

Я знаю, что вы можете выбрать несколько проектов запуска из свойств решений, но как обрабатываются точки останова?

Если два проекта используют один и тот же класс (два разных его экземпляра), и я остановлен с точкой останова в нем, будет ли он блокировать только одну программу или оба? Как я могу узнать, какой исполняемый файл попадает в точку останова? Я немного смущен.

Ответ 1

Да, это возможно. Вы можете установить несколько проектов запуска в своем решении (щелкните правой кнопкой мыши решение, перейдите к разделу "Установка проектов запуска", выберите "Несколько проектов запуска") и укажите действие для каждого проекта, содержащегося в решении ("Нет", "Пуск", "Запуск без отладки"). Если для нескольких проектов установлено значение "Пуск", отладчик будет подключаться к каждому при запуске.

Когда вы достигаете точки останова, вы можете видеть, какой процесс используется в панели инструментов "Отладка" (вам может потребоваться показать ее; некоторые профили скрывают это по умолчанию). Он покажет, какой процесс вы просматриваете в данный момент, в каком потоке вы находитесь, и в каком фрейме стека вы находитесь:

Debug Location toolbar

Я считаю, что поведение по умолчанию состоит в том, что, когда один процесс прерывается, отладчик прерывает их все. Таким образом, вы можете проверить состояние любого присоединенного процесса при достижении одной точки останова.

Ответ 2

Нет. Вы можете отладить EXE файл и перейти к отладочной версии связанного DLL файла, если вы уверены, что EXE файл "видит" тот же DLL файл, что и отладчик, но вы не можете отладить два EXE файла. файлы одновременно. По крайней мере, насколько я знаю.