You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过SSH附加进程调试Ubuntu上的.NET Core时断点未命中

排查ASP.NET Core Ubuntu远程调试无响应问题

核心问题定位

你遇到的是Visual Studio 2022通过SSH附加Ubuntu上的ASP.NET Core进程后,调试输出为空、模块列表无内容、断点不命中的问题——尽管vsdbg已安装,但调试器未和Visual Studio建立有效通信。

排查与修复步骤

1. 确认应用构建的调试符号配置

  • 必须用Debug模式构建,确保生成完整调试符号:
    执行带-c Debug参数的构建命令,保证pdb文件完整生成:
    dotnet build -c Debug
    
  • 检查pdb文件是否和应用程序集(.dll)在同一目录,且文件大小符合Debug构建的预期(通常比Release版pdb大)。

2. 修正vsdbg安装参数

你之前的安装命令包含了VS Code专属参数,会导致和Visual Studio 2022通信不兼容,重新执行适配VS的安装命令:

/bin/sh /home/smodev/.vs-debugger/GetVsDbg.sh -v vs2022 -u -l /home/smodev/.vs-debugger/vs2022

去掉原命令中的-d vscode和-a /remote_debugger参数,这些是针对VS Code调试的配置,和Visual Studio不兼容。

3. 确保应用以Debug模式启动

  • 用Debug模式启动应用,而非Release或发布版本:
    dotnet run -c Debug
    
  • 不要使用dotnet publish后的发布文件启动,发布版本默认会优化掉调试钩子,无法正常触发断点。

4. 检查Visual Studio附加配置

  • 附加进程时,在Visual Studio的附加到进程窗口中确认:
    • 选择正确的Ubuntu SSH主机连接
    • 附加到选项手动指定为Managed (.NET Core, .NET 5+) code,不要用自动检测
    • 勾选显示所有用户的进程,确保能找到目标ASP.NET Core进程

5. 验证调试权限与网络

  • 确保运行vsdbg的用户(smodev)和启动ASP.NET Core应用的用户为同一账号,避免权限不足导致调试器无法注入
  • 临时关闭Ubuntu防火墙测试:sudo ufw disable,排除端口通信被拦截的可能

6. 手动测试vsdbg可用性

在Ubuntu终端执行以下命令,验证vsdbg本身是否正常:

/home/smodev/.vs-debugger/vs2022/vsdbg --interpreter=mi

如果能进入调试交互模式,说明vsdbg本身无问题;若报错,重新执行安装命令修复。


内容的提问来源于stack exchange,提问作者oudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 21:07:13