记一次.NET某工控 宇宙射线 导致崩溃分析
💡
原文中文,约5600字,阅读约需14分钟。
📝
内容提要
作者遇到程序崩溃问题,使用Windbg分析发现是宇宙射线导致的。通过验证托管堆上的对象和方法表的数据发现bit位翻转问题。可能的原因包括宇宙射线、太阳耀斑、地磁暴、电离辐射、硬件故障、杀毒软件和内存超频。内存超频引发的程序不稳定概率最大。
🎯
关键要点
- 作者遇到程序崩溃问题,分析发现是宇宙射线导致的。
- 使用Windbg分析崩溃点,发现托管堆上的对象和方法表数据出现bit位翻转。
- 可能导致崩溃的原因包括宇宙射线、太阳耀斑、地磁暴、电离辐射、硬件故障、杀毒软件和内存超频。
- 内存超频引发的程序不稳定概率最大。
- 通过Windbg的命令验证托管堆的状态,发现有坏对象。
- 坏对象的内存布局被破坏,可能是由于MethodTable不正确导致的。
- 分析过程中发现MethodTable地址差异,确认是bit位翻转问题。
- 作者认为所有用户态异常都是软件造成的,直到看到相关讨论才有新的思考。
➡️