Подтвердить что ты не робот

Как запустить дочерний процесс в том же отладке Visual Studio, что и родительский, программно?

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

В настоящее время я использую

Process.Start("sample.exe");

Я хочу, чтобы это было примерно так:

if (Debugger.IsAttached)
    // start "sample.exe" in the same debugging session
else
    Process.Start("sample.exe");

Я могу передать флаг дочернему процессу, который инструктирует его вызвать Debugger.Launch(), но это не приведет к ошибкам запуска при запуске, и это приведет к сеансу отладки, когда некоторые функции не включены (например, редактирование и продолжение, и т.д). Желательно, чтобы отладчик запускал процесс напрямую.

4b9b3361

Ответ 1

Вы должны приложить отладчик к процессу запуска. Это можно сделать:

Вот пример для "sample.exe" для прикрепления отладчика:

if (!Debugger.IsAttached)
     Debugger.Launch();
Debugger.Break();

Вы должны передать некоторый параметр в "sample.exe" , чтобы проверить, нужно ли вам прикреплять отладчик.

Process.Start("sample.exe", "Debug=true");

Ответ 3

Предполагая, что sample.exe будет хостом для кода, который вы хотите отлаживать, вы можете использовать свойства проекта → параметры отладки - выберите действие как внешнюю программу и укажите путь к sample.exe. VS запустит этот исполняемый файл и присоединяет к нему отладчик.