Что вам нужно, так это в меню «Инструменты»: «Присоединить к процессу». Это дает вам список запущенных процессов и позволяет вам присоединить ваш отладчик к этим процессам.
Для локальной отладки Transport и Qualifier должны сохранять свои значения по умолчанию. Значение Attach To, расположенное чуть выше списка, определяет, какой тип отладки вы будете выполнять (нативные или управляемые являются наиболее распространенными типами), и, как правило, отладчик также может найти здесь хорошее значение по умолчанию.
Основная интересная часть - это список процессов - ищите в этом списке подпроцессы, которые вы хотите отлаживать. После того как вы нашли и выбрали процесс, нажмите «Присоединить» в правом нижнем углу (или просто дважды щелкните процесс), и отладчик подключится к этому процессу и начнет его отладку.
Возможно, вы также захотите включить панель инструментов «Местоположение отладки», которая позволяет изменить фокусировку отладчика на различные процессы и потоки, к которым вы подключены. Отладка нескольких процессов в одном экземпляре Visual Studio может быть сложной, поэтому вы всегда можете рассмотреть возможность запуска отдельных экземпляров для отладки каждого отдельного процесса.
Другим сложным аспектом этого может быть отладка начального запуска подпроцессов. Часто вещь, которую вы хотите отладить, происходит до того, как вы можете подключить отладчик, поэтому вам нужен какой-то способ заставить процесс ждать, пока вы не будете готовы. Простой способ сделать это в C ++ - использовать функцию IsDebuggerPresent. Попробуйте добавить этот код в самое начало вашей функции main () (или эквивалентной):
while( !IsDebuggerPresent() )
Sleep( 500 );
Или попробуйте этот код для C #:
while( !System.Diagnostics.Debugger.IsAttached )
System.Threading.Thread.Sleep( 500 );