记一次 .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触发时会暂停所有托管线程,导致程序的执行流被阻塞。
➡️