Код Visual Studio при выходе уничтожает внешний exe-процесс, к которому был подключен отладчик C #

#c# #visual-studio-code #vscode-debugger #omnisharp

#c# #visual-studio-код #vscode-debugger #всеохватывающий

Вопрос:

Я использую vs code и ms-dotnettools.csharp расширение для отладки внешнего exe-процесса, написанного в C # .NET 4.6 Framework. Я подключаюсь к этому процессу с приведенной ниже конфигурацией

 "configurations": [
     {
         "name": "Attach to ConsoleApp",
         "type":"clr",
         "request": "attach",
         "processName": "ConsoleApp",
     }]
 

Это работает довольно хорошо до того момента, когда я закрываю код Visual Studio после достижения точки останова и выполняю некоторые шаги отладки. Приложение, к которому был подключен процесс, завершает работу без какой-либо информации, даже средство просмотра событий Windows не содержит никакой информации. Однако остановка отладчика без закрытия VSCode работает очень хорошо, поэтому я предполагаю, что это может быть проблема с vscode, а не с самим расширением C #.
Хотя этот сбой происходит не каждый раз, например, я чаще воспроизводлю его на более медленной виртуальной машине, чем на более быстрой локальной системе.

Что происходит, когда VSCode закрывается? Будет ли это корректно останавливать запущенное расширение?

Шаги для воспроизведения:

  1. Создайте .NET x64 exe-приложение с DebugType portable
  2. Запустите exe-файл.
  3. Откройте VSCode с расширением C #.
  4. Запустите отладчик, который будет подключен к запущенному exe-файлу.
  5. Установите точку останова.
  6. Достигнута точка останова.
  7. Выполните несколько шагов отладки.
  8. Закройте Visual Studio Code.
  9. EXE-файл, к которому был подключен отладчик, завершает работу без какой-либо информации.
  • Возникает ли эта проблема, когда все расширения отключены?: Нет. Для этой проблемы требуется расширение ms-dotnettools.csharp
  • Версия VSCode: 1.51.1
  • Версия ОС: Windows 10.0.18363
  • ms-dotnettools.csharp Версия: 1.23.6

Комментарии:

1. Если вы подозреваете, что это проблема с инструментом, подумайте о том, чтобы сообщить об ошибке команде VSCode или проекту расширения ms-dotnettools.

2. У VS code нет опции «Отсоединить от процесса»? Попробуйте выполнить это перед закрытием VSCode.

3. @PMF Я устал от написания собственного расширения vscode и выполнения workbench.action.debug.disconnect команды в deactivate методе, который выполняется при закрытии vscode, но это ничего не меняет.

4. @Cleptus Спасибо за подсказку. проблема с github