记一次 .NET某工业设计软件 崩溃分析
原文中文,约7700字,阅读约需19分钟。发表于: 。一:背景 1. 讲故事前些天有位朋友找到我,说他的软件在客户那边不知道什么原因崩掉了,从windows事件日志看崩溃在 clr 里,让我能否帮忙定位下,dump 也抓到了,既然dump有了,接下来就上 windbg 分析吧。二:WinDbg 分析 1. 为什么崩溃在 clr一般来说崩溃在clr里都不是什么好事情,这预示着 clr 在执行自身代码的时候抛了异常,即灾难的 ExecutionEngin...
本文讲述了作者在调试软件崩溃问题时的经历,通过使用WinDbg分析崩溃日志,发现崩溃是由于执行自身代码时抛出了灾难性异常导致的。进一步分析发现,异常是由于一个接口Stub调用的崩溃引起的。作者提出了三个解决办法:预热接口方法、隔离托管C++和C#、重点观察多Domain下的托管调用。最后总结说,多Domain和托管C++混合编程的问题很难解决。