记一次 .NET某施工建模软件 卡死分析

💡 原文中文,约7400字,阅读约需18分钟。
📝

内容提要

本文讲述了作者朋友的软件卡死问题,通过WinDbg分析发现是AcLayers.dll的lock操作导致的。问题是由PerformanceCounter类引发的,去掉该类后问题解决。

🎯

关键要点

  • 作者朋友的软件卡死问题通过WinDbg分析发现是AcLayers.dll的lock操作导致的。
  • 问题由PerformanceCounter类引发,去掉该类后问题解决。
  • 分析过程中使用了k命令观察主线程,发现卡在NtWaitForAlertByThreadId。
  • AcLayers.dll用于处理系统级兼容性问题,查询注册表时存在lock操作。
  • 通过分析线程栈,发现持有临界区锁的线程在执行CloseLagPerfData方法时一直在Sleep等待。
  • 最终建议朋友避免使用PerformanceCounter类,问题得以解决。
➡️

继续阅读