Могу ли я программно присоединить работающий процесс .NET 6 к работающему экземпляру отладчика Visual Studio?C#

Место общения программистов C#
Ответить
Anonymous
 Могу ли я программно присоединить работающий процесс .NET 6 к работающему экземпляру отладчика Visual Studio?

Сообщение Anonymous »

Я отлаживаю логику IPC, когда один процесс .NET 6 запускает другой, и я не могу отладить оба процесса в одном экземпляре Visual Studio 2022.
Когда дочерний процесс достигает DebugBreak(true), как показано ниже:

[Conditional("ATTACH_DEBUGGER")]
public static void DebugBreak(bool condition)
{
if (condition)
{
if (!System.Diagnostics.Debugger.IsAttached)
{
System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
}
}
}


Мне будет предложено запустить новый экземпляр VS2022 для его отладки:
Изображение

Однако я хочу отладить его в существующем экземпляре VS, если я уже отлаживаю родительский процесс.< /p>
Возможно ли такое вообще? Есть ли какой-либо параметр конфигурации VS, который мне может не хватать?
Текущий обходной путь: подключение вручную, переводя дочерний процесс в состояние ожидания с помощью WaitForDebugger() ниже :
[Conditional("ATTACH_DEBUGGER")]
public static void WaitForDebugger()
{
using var process = Process.GetCurrentProcess();
Console.WriteLine($"Waiting for debugger, process: {process.ProcessName}, id: {process.Id}, Assembly: {Assembly.GetExecutingAssembly().Location}");

while (!System.Diagnostics.Debugger.IsAttached)
{
// hit Esc to continue without debugger
if (Console.KeyAvailable && Console.ReadKey(intercept: true).KeyChar == 27)
{
break;
}
Thread.Sleep(TimeSpan.FromSeconds(1));
Console.Beep(frequency: 1000, duration: 50);
}
}


Подробнее здесь: https://stackoverflow.com/questions/720 ... nstance-of
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»