记一次 .NET 某汽车控制焊接软件 卡死分析 - 一线码农

💡 原文中文,约7000字,阅读约需17分钟。
📝

内容提要

朋友求助分析窗体程序卡死问题,发现是亚信安全的AisEsmUmh.dll拦截导致Ctrl+C无效,解决方法是关闭或添加白名单。

🎯

关键要点

  • 朋友求助分析窗体程序卡死问题,发现是亚信安全的AisEsmUmh.dll拦截导致Ctrl+C无效。
  • 程序卡死的原因是主线程在等待事件完成,但有线程未能优雅退出。
  • 通过分析发现AisEsmUmh.dll是被注入的安全软件,导致程序执行流被阻塞。
  • 亚信安全拦截的原因是GC触发时暂停所有托管线程,导致Ctrl+C无法完成。
  • 解决方法是关闭亚信安全或添加白名单。

延伸问答

窗体程序卡死的主要原因是什么?

窗体程序卡死的主要原因是主线程在等待事件完成,但有线程未能优雅退出,导致Ctrl+C无效。

AisEsmUmh.dll是什么?

AisEsmUmh.dll是亚信安全的安全软件组件,被注入到程序中,导致程序执行流被阻塞。

如何解决窗体程序卡死的问题?

解决方法是关闭亚信安全或将其添加到白名单中。

为什么亚信安全会拦截程序?

亚信安全拦截程序是因为GC触发时会暂停所有托管线程,导致程序无法正常响应Ctrl+C事件。

程序卡死时如何进行分析?

可以通过分析调用栈和托管线程列表来确定程序卡死的原因。

GC触发时会发生什么?

GC触发时会暂停所有托管线程,导致程序的执行流被阻塞。

➡️

继续阅读