2012-06-01 2 views
0

Я побежал мое приложение под Application Verifier, и он показал мне следующую задачу о завершении работы моего приложения:Странная ошибка в станд :: струнной деструктора

VERIFIER STOP 00000210: pid 0x6D0: Critical section not initialized. 

    005C9148 : Critical section address. 
    00000000 : Critical section debug info address. 
    00000000 : Not used. 
    00000000 : Not used. 

Стек трассировки:

myapp!_Mtxlock+0xf [f:\dd\vctools\crt_bld\self_x86\crt\src\xmtx.c @ 45] 
myapp!std::_Lockit::_Lockit+0x2d [f:\dd\vctools\crt_bld\self_x86\crt\src\xlock.cpp @ 64] 
myapp!std::_Container_base12::_Orphan_all+0x2f [c:\program files (x86)\microsoft visual studio 10.0\vc\include\xutility @ 200] 
myapp!std::_String_val<wchar_t,std::allocator<wchar_t> >::~_String_val<wchar_t,std::allocator<wchar_t> >+0x57 [c:\program files (x86)\microsoft visual studio 10.0\vc\include\xstring @ 479] 
myapp!std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >+0x4f [c:\program files (x86)\microsoft visual studio 10.0\vc\include\xstring @ 755] 
myapp!MyClass::~MyClass+0x42 
myapp!MyOtherClass::~MyOtherClass+0x5f 
myapp!MyOtherClass::`scalar deleting destructor'+0x16 
myapp!MyComInterfaceImplementation::Release+0x54 
mscorwks!DllRegisterServerInternal+0x213f6 
mscorwks!DllRegisterServerInternal+0x214ac 
mscorwks!DllRegisterServerInternal+0x21510 
mscorwks!StrongNameErrorInfo+0x6565 
mscorwks!StrongNameErrorInfo+0x632c 
mscorwks!StrongNameErrorInfo+0x64ad 
mscorwks!LogHelp_LogAssert+0x4ee01 
mscorwks!LogHelp_LogAssert+0x4f269 
mscorwks!LogHelp_LogAssert+0x4f334 
mscorwks!CorDllMain+0x1ca6 
mscorwks!CorDllMain+0x230e 
mscorwks!CreateApplicationContext+0xe551 
mscorwks!DllRegisterServerInternal+0x2eacd 
vfbasics+0x1602c 
kernel32!GetModuleHandleA+0xdf 

Примечание что-то пошло не так в деструкторе std :: basic_string. Что может быть причиной этого?

+0

Это не трассировка стека. Я почти уверен, что ваша программа не * начала * в деструкторе 'MyClass'. – jalf

+0

jalf, ок, я закончил. – vkrzv

ответ

2

Возможно, ваш MyClass был уничтожен один раз во время выполнения, и он снова уничтожается при завершении работы, помечая сообщение об ошибке с ложным сообщением.