记一次 .NET某企业数字化平台 崩溃分析

💡 原文中文,约7100字,阅读约需17分钟。
📝

内容提要

本文讲述了一个软件崩溃的故事,作者使用WinDbg分析了崩溃原因,发现是栈溢出导致的异常。作者定位到了栈溢出线程,并发现是SqlSugar库导致的。最后建议作者改变写法以避免栈溢出。

Q&A

如何使用WinDbg分析软件崩溃的原因?

使用WinDbg时,可以通过打开dump文件自动定位崩溃时的寄存器和线程栈上下文,分析异常信息。

栈溢出异常的代码是什么?

栈溢出异常的代码为c00000fd,表示当前栈溢出。

SqlSugar库是如何导致栈溢出的?

SqlSugar库在处理大数据量时,用户代码的递归调用导致了栈溢出。

如何避免栈溢出的问题?

建议修改代码逻辑,避免使用递归,改用循环等方式来处理数据。

在分析崩溃时,如何定位到栈溢出线程?

可以通过调用栈分析,使用kc命令观察调用栈,找到栈溢出线程。

崩溃分析中如何确认异常的来源?

通过分析调用栈和用户代码的调用方式,可以确认异常的来源。

🏷️

标签

➡️

继续阅读