记一次栈溢出异常问题的排查

刚修改的服务,推到开发环境之后,总是时不时的崩溃,但是不知道为什么。尝试找到他的最后一次调用,也没有复现。

没有办法,只能抓dump了。

开启崩溃自动dump,网络上很多,不赘述了。

拿到dump之后,首先看看是什么类型的异常

如图所示,是个栈溢出的异常。

打印一下堆栈,发现密密麻麻的全是这个代码。

我们找到这个对象,发现里边有个隐式转换的代码有点问题。

隐式转换的应该是将传入的内容转为转出的格式,结果在返回的时候,返回了传入的类型,导致,他想要转成目标类型的时候,又触发了隐式转换,然后就无限递归了。

最后排查项目中所有的类似代码,发现只有这一处,没有windbg基本上很难排查到具体原因。 windbg 牛B

posted @ 2024-04-16 17:13  连程  阅读(458)  评论(3编辑  收藏  举报