一例MSVC2013中recursive_mutex引起崩溃的原因分析

来源:互联网 发布:js修改时间格式 编辑:程序博客网 时间:2024/05/12 00:59

复现方法:CUI程序,DLL中的全局对象在析构时调用recursive_mutex::lock()函数,运行时通过Ctrl+C触发。


原因分析:DLL被释放时,会自动析构所有的全局对象。由于Ctrl+C的实现为系统创建一个远程线程调用dllmain并析构全局对象,而这个远程线程缺少一些必要的初始化过程,造成recursive_mutex::lock()函数崩溃。


以下是分析时的截图:


0 0
原创粉丝点击