记一次 .NET某施工建模软件 卡死分析
💡
原文中文,约7400字,阅读约需18分钟。
📝
内容提要
本文讲述了作者朋友的软件卡死问题,通过WinDbg分析发现是AcLayers.dll的lock操作导致的。问题是由PerformanceCounter类引发的,去掉该类后问题解决。
🎯
关键要点
- 作者朋友的软件卡死问题通过WinDbg分析发现是AcLayers.dll的lock操作导致的。
- 问题由PerformanceCounter类引发,去掉该类后问题解决。
- 分析过程中使用了k命令观察主线程,发现卡在NtWaitForAlertByThreadId。
- AcLayers.dll用于处理系统级兼容性问题,查询注册表时存在lock操作。
- 通过分析线程栈,发现持有临界区锁的线程在执行CloseLagPerfData方法时一直在Sleep等待。
- 最终建议朋友避免使用PerformanceCounter类,问题得以解决。
➡️