CComPtrBase::~解除分配智能指针时,CComPtr Base崩溃
CComPtrBase::~CComPtrBase is crashing while deallocating smart pointers
最近,在我们的客户端站点升级到Windows Server 2008R2后,与COM相关的崩溃显著增加。最初我们认为这可能是由于COM引用计数问题,但经过对代码的进一步调查,我们已经排除了这种可能性。我们正在关注的另一个角度是,COM库是否可能因未初始化而发生此问题?在对代码进行调查后,我们再次排除了这种可能性。到目前为止,我们还没有任何具体的答案。
迁移到64位后,是否有COM崩溃增加的已知实例?
以下是碰撞指纹。我在这篇文章中简明扼要。
崩溃1:
0:000>kpn 2
#ChildEBP RetAddr
00 0033e9d8 662051d5 pvformscom!ATL::CComPtrBase::~CComPtr Base(void)+0x6[c:\program files\microsoft visual studio 10.0\vc\almfc\include\atcomcli.h@162]
01 0033ea00 66210586 pvformscom!c订单::~ c订单(无效)+0xa6[c:\2012.01_svc_dep\cpp\pvformscom\order.cpp@149]
0:000>.帧00
00 0033e9d8 662051d5 pvformscom!ATL::CComPtrBase::~CComPtr Base+0x6[c:\program files\microsoft visual studio 10.0\vc\atmfc\include\atcomcli.h@162]
0:000>dt此
本地var@ecx类型ATL::CComPtrBase*
{0000000 1}+0x000 p:0x00000001 ICalendar
崩溃2:
0:000>kpn 2
#ChildEBP RetAddr
00 0016e6d8 646052a9 pvformscom!ATL::CComPtrBase::~CComPtr Base(void)+0x6[c:\program files\microsoft visual studio 10.0\vc\almfc\include\atcomcli.h@162]
01 0016e700 646106ae pvformscom!c订单::~ c订单(无效)+0x6f[c:\2012.01_svc_dep\cpp\pvformscom\order.cpp@152]
0:000>.帧00
00 0016e6d8 646052a9 pvformscom!ATL::CComPtrBase::~CComPtr Base+0x6[c:\program files\microsoft visual studio 10.0\vc\atmfc\include\atcomcli.h@162]
0:000>dt此
本地var@ecx类型ATL::CComPtrBase*
{0000000 1}+0x000 p:0x00000001 II通信
崩溃3:
0:000>kpn 2
#ChildEBP RetAddr
00 0032f008 6193f444 pvformscom!ATL::CComPtrBase::~CComPtr Base(void)+0x6[c:\program files\microsoft visual studio 10.0\vc\almfc\include\atcomcli.h@162]
01 0032f038 6194d2a7 pvformscom!c临床事件::~ c临床事件(无效)+0x2df[c:\2012.01_svc_dep\cpp\pvformscom\clinicalevent.cpp@170]
0:000>.帧00
00 0032f008 6193f444 pvformscom!ATL::CComPtrBase::~CComPtr Base+0x6[c:\program files\microsoft visual studio 10.0\vc\atmfc\include\atcomcli.h@162]
0:000>dt此
本地var@ecx类型ATL::CComPtrBase*
{0000000 1}+0x000 p:0x00000001 IPV集合
非常感谢您的帮助。
注意:我们在类中使用一些智能指针作为成员变量。
谢谢,
Sree
如果在::CoUninitialize()
之后调用Release()
这种行为。
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- Visual Studio在尝试读取resource.txt文件时崩溃
- CComPtrBase::~解除分配智能指针时,CComPtr Base崩溃