记一次 .NET 某旅行社审批系统 崩溃分析
原文中文,约8800字,阅读约需21分钟。
📝
内容提要
本文介绍使用Windbg分析程序崩溃原因和解决栈溢出问题。通过分析dump文件,发现死递归导致栈空间耗尽,引发栈溢出异常。建议升级SDK解决问题,异常码为c00000fd。
🎯
关键要点
-
朋友的程序崩溃,通过抓取 crash dump 分析问题。
-
使用 Windbg 分析 dump 文件,发现栈溢出异常,异常码为 c00000fd。
-
栈溢出是由于死递归导致的,建议升级 SDK 解决问题。
-
Windbg 提供了 .excr 和 !clrstack 命令来分析栈信息。
-
栈溢出异常 c00000fd 与访问违例 c0000005 的区别在于栈的布局和 PAGE_GUARD 机制。
-
PAGE_GUARD 是 Windows 的栈伸展机制,防止栈空间耗尽时引发异常。
-
通过分析栈的限制和基地址,可以验证栈溢出异常的原因。
🏷️