记一次栈溢出异常问题的排查
刚修改的服务,推到开发环境之后,总是时不时的崩溃,但是不知道为什么。尝试找到他的最后一次调用,也没有复现。
没有办法,只能抓dump了。
开启崩溃自动dump,网络上很多,不赘述了。
拿到dump之后,首先看看是什么类型的异常
如图所示,是个栈溢出的异常。
打印一下堆栈,发现密密麻麻的全是这个代码。
我们找到这个对象,发现里边有个隐式转换的代码有点问题。
隐式转换的应该是将传入的内容转为转出的格式,结果在返回的时候,返回了传入的类型,导致,他想要转成目标类型的时候,又触发了隐式转换,然后就无限递归了。
最后排查项目中所有的类似代码,发现只有这一处,没有windbg基本上很难排查到具体原因。 windbg 牛B
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器