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

执行dotnet run时触发栈破坏检测错误,请求解决方法

解决.NET 3.0在Pop!_OS 18.10上运行时的栈溢出检测错误

这个*** stack smashing detected ***错误在旧版本.NET和停止支持的Ubuntu衍生发行版上确实挺常见的,我来分享几个可行的排查和解决步骤:

1. 清理项目缓存,重新构建

有时候项目的缓存文件损坏会导致这类奇怪的运行时错误,先试试最基础的操作:

  • 删除项目目录下的bin和obj文件夹
  • 重新执行dotnet run

2. 更换为更兼容的.NET LTS版本

Pop!_OS 18.10已经停止官方支持,系统库版本和.NET 3.0的兼容性不佳。推荐换成长期支持的.NET 2.1版本(对旧系统适配更好):

  • 先卸载当前的.NET 3.0 SDK:
    sudo apt remove dotnet-sdk-3.0
    
  • 添加微软官方软件源并安装.NET 2.1 SDK:
    wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt-get update
    sudo apt-get install dotnet-sdk-2.1
    
  • 重新创建console项目并运行,看看问题是否解决

3. 检查系统glibc版本

栈溢出检测是glibc的安全机制之一,Pop!_OS 18.10的glibc版本可能和.NET 3.0的JIT编译逻辑冲突:

  • 执行ldd --version查看当前glibc版本,如果低于2.29,建议考虑升级系统
  • 由于Pop!_OS 18.10已停止支持,最好升级到长期支持的版本(比如Pop!_OS 22.04 LTS),这样既能解决兼容性问题,也能获得系统安全更新

4. 临时禁用栈溢出检测(仅用于测试)

如果只是临时验证功能,可以通过环境变量绕过检测(不推荐用于生产环境):

export GCC_EXEC_PREFIX=""
export LD_PRELOAD=""
dotnet run

以上步骤应该能帮你解决问题,最稳妥的方案还是升级到受支持的系统版本,避免后续出现更多兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:19:22