首页 > 解决方案 > 退出时的 Visual Studio Code 会杀死附加了 C# 调试器的外部 .exe 进程

问题描述

我正在使用 vs 代码和ms-dotnettools.csharp扩展来调试用 C# .NET 4.6 Framework 编写的外部 .exe 进程。我使用以下配置附加到此过程

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

当我在命中断点后关闭 Visual Studio Code 并执行一些调试步骤时,这非常有效。附加该进程的应用程序在没有任何信息的情况下崩溃,即使 Windows 事件查看器也没有任何信息。但是,停止调试器,而不关闭 VSCode 工作得很好,这就是为什么我认为这可能是一个 vscode 问题,而不是 C# 扩展本身。例如,虽然这种崩溃并非每次都发生,但我更经常在较慢的 VM 上重现它,而不是在较快的本地系统上重现它。

VSCode 关闭时会发生什么?它会优雅地停止正在运行的扩展吗?

重现步骤:

  1. 使用可移植的 DebugType 构建 .NET x64 exe 应用程序
  2. 运行exe。
  3. 打开带有 C# 扩展名的 VSCode。
  4. 运行将附加到正在运行的 exe 的调试器。
  5. 放置断点。
  6. 断点被击中。
  7. 做一些调试步骤。
  8. 关闭 Visual Studio 代码。
  9. 附加调试器的 .exe 在没有任何信息的情况下崩溃。

标签: c#visual-studio-codevscode-debuggeromnisharp

解决方案


推荐阅读