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

Ubuntu 22.04下VS Code调试.NET 6遇0x80131c3c错误求助

解决Ubuntu 22.04 LTS下VS Code调试.NET 6程序时“Unable to attach to CoreCLR. Unknown Error: 0x80131c3c”的问题

针对你遇到的调试报错(终端dotnet build/dotnet run可正常执行),可以尝试以下针对性解决步骤:

  • 检查并修正launch.json配置
    确认调试配置文件launch.json的正确性:

    • 确保program字段指向编译后的正确DLL路径,例如:"program": "${workspaceFolder}/bin/Debug/net6.0/YourProjectName.dll"
    • 验证type为coreclr、request为launch,避免误用attach模式导致的附加失败
    • 若配置混乱,可直接删除.vscode/launch.json,重启VS Code后让其自动生成默认调试配置
  • 调整系统ptrace权限限制
    Ubuntu默认的ptrace安全限制可能阻止调试器附加到CoreCLR进程:

    • 临时生效:执行sudo sysctl -w kernel.yama.ptrace_scope=0,之后重新尝试调试
    • 永久生效:编辑/etc/sysctl.d/10-ptrace.conf,将kernel.yama.ptrace_scope = 1修改为0,保存后重启系统
  • 更新.NET调试相关工具
    确保调试依赖组件是最新状态:

    • 执行dotnet tool update -g dotnet-dump和dotnet tool update -g dotnet-counters,更新全局调试工具
    • 在VS Code扩展面板中,检查C#扩展(OmniSharp)是否安装了完整的调试组件,若有缺失则触发自动安装
  • 清理VS Code缓存与本地配置
    残留的缓存或配置可能引发兼容性问题:

    • 删除VS Code用户配置目录:rm -rf ~/.config/Code
    • 备份工作区.vscode目录后删除,重新打开项目让VS Code重建配置
  • 验证.NET SDK与Runtime版本一致性
    确保编译和调试使用的.NET版本统一:

    • 执行dotnet --list-sdks和dotnet --list-runtimes,确认.NET 6的SDK和Runtime版本匹配
    • 在项目的.csproj文件中明确指定<TargetFramework>net6.0</TargetFramework>,避免版本混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:40:37