最终,在完全删除并重新安装 .NET 框架和 Visual Studio 2010,然后在我的注册表上运行 CCleaner 后,现在可能已经解决了这个问题。现在几天没有看到错误,所以我希望它已经消失了。谢谢大家的建议。
总而言之,我有 VS2010 专业版(10.0.40219.1 SP1Rel),目前使用 AnkhSVN 和 Tortoise 最新版本进行 VB.NET 开发。它崩溃了,除了:
Unhandled exception at 0x77d415de in devenv.exe: Microsoft C++ exception: VBRuntimeException at memory location 0x08e0f594..
它每天发生 10-20 次,正在成为一场噩梦。我已经重新安装了整个东西(不仅仅是修复)。我已删除所有临时文件 .suo 、 .user 等并关闭硬件加速。这些都没有帮助。如果我调试崩溃,我会得到以下堆栈:
ntdll.dll!_ZwRaiseException@12() + 0x12 bytes ntdll.dll!_ZwRaiseException@12() + 0x12 bytes KernelBase.dll!_RaiseException@16() + 0x58 bytes msvcr100.dll!__CxxThrowException@8() + 0x45 bytes > msvbide.dll!PEBuilder::DefinePiaTypes() + 0xb5422 bytes msvbide.dll!PEBuilder::Compile() + 0x14b591 bytes msvbide.dll!CompilerProject::_PromoteToCompiled() + 0xa9 bytes msvbide.dll!CompilerProject::CompileFromBoundToCompiled() + 0x32b38 bytes msvbide.dll!CompilerPackage::CompileFromBoundToCompiled() + 0x1f bytes msvbide.dll!CompilerPackage::CompileAllProjects() - 0x419 bytes msvbide.dll!CompilerPackage::BackgroundTask() + 0x68 bytes msvbide.dll!ThreadSyncManager::ThreadProc() + 0xd2 bytes kernel32.dll!769233aa() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
在定义 PIATypes 中,我可以看到以下内容,其中包含对 vftable 和未满足条件的引用,但看不到究竟是什么导致了崩溃。如果有人能理解它,那将不胜感激,因为我花了几个小时试图解决它。
怀疑的手指指向 AnkhSVN、TortoiseSVN 或(现已卸载)Resharper 试用版。特别是后者,因为这是我同事的唯一区别,他使用类似的盒子运行相同的解决方案,相同的 vs2010 构建并且完全没有问题
5926B73E mov ecx,edi 5926B740 mov dword ptr [esp+70h],0 5926B748 调用
BCSYM_NamedRoot::GetQualifiedNameHelper (59006C83h) 5926B74D mov
esi,dword ptr [esp+40h] 5926B751 mov edx,dword 5926 B ptr [esp+28h],edx 5926B758 movzx eax,byte ptr [edi] 5926B75B 测试字节 ptr BCSYM::s_rgBilkindInfo (59001BD8h)[eax+eax*2],8 5926B763 je
PEBuilder::DefinePiaTypes+30Eh (5926B7657BEh) 5926
byte ptr BCSYM::s_rgBilkindInfo+1 (59001BD9h)[eax+eax*2],bl 5926B76C je PEBuilder::DefinePiaTypes+2D4h (5926B784h) 5926B76E mov ecx,dword ptr [edi+4Ch] 5926B771 调用
BCSYM::DigThroughNamedType (59002029h) 5926B776 mov ecx,eax 5926B778 call BCSYM::PNamedRoot (59001F9Ch) 5926B77D call
BCSYM::PContainer (59001C60h) 5926B782 jmp
PEBuilder::DefinePiaTypes+2D6h (5926B786h) 5926B784 mov
eax,edi 5926B786 cmp dword ptr [eax+4Ch],0 5926B78A je
PEBuilder::DefinePiaTypes+30Eh (5926B7BEh) 5926B78C movzx
eax,byte ptr [edi] 5926B78F test byte ptr BCSYM::s_rgBilkindInfo+1 (59001BD9h)[eax+eax*2],bl 5926B7 je
PEBuilder::DefinePiaTypes+304h (5926B7B4h) 5926B798 mov
ecx,dword ptr [edi+4Ch] 5926B79B 调用
BCSYM::DigThroughNamedType (59002029h) 5926B7A0 mov ecx,eax 5926B7A2 调用 BCSYM::PNamedRoot (59001F9Ch) 5926B7A7 调用
BCSYM::PContainer (59001C60h) 5926B7AC mov eax,dword ptr [eaxmov+4Ch] dword ptr [eaxmov+4Ch] 5 70h] 5926B7B2 jmp PEBuilder::DefinePiaTypes+327h (5926B7D7h) 5926B7B4 mov eax,edi 5926B7B6 mov eax,dword ptr [eax+4Ch] 5926B7B9 mov eax,dword ptr [eax+70h] 5926B7BC jmp
PEBuilder::DefinePia ) 5926B7BE mov
eax,edi 5926B7C0 调用 BCSYM_NamedRoot::GetContainer (590021A3h) 5926B7C5 测试 eax,eax 5926B7C7 je
PEBuilder::DefinePiaTypes+325h (5926B7D5h) 5926B7C9 mov
eax,dword ptr [eax+4Ch] 5926B7CC 测试 eax,eax 5926B7CE je PEBuilder::DefinePiaTypes+325h (5926B7D5h) 5926B7D0 mov eax
,dword ptr [eax+70h] 5926B7D3 jmp
PEBuilder::DefinePiaTypes+327h (5926B7D5h)
,eax 5926B7D7 mov eax,dword ptr [eax+60h] 5926B7DA lea ecx,[esp+68h] 5926B7DE push ecx 5926B7DF lea ebx,[esp+2Ch] 5926B7E3 lea edi,[esp+58h] 5926B7E7 mov
dword ptr [esp 20h],eax 5926B7EB call
DynamicHashTable >::GetValueInternal (59024E04h) 5926B7F0 test al,al 5926B7F2 je PEBuilder::DefinePiaTypes+379h (5926B829h)
5926B7F4 lea edx,[esp+20h] 5926B7F8 push edx
5926B7F9 调用 DynamicHashTable >::GetValueInternal (59024E04h) 5926B7FE 测试 al,al 5926B800 je 5926B93A 5926B806 mov eax,dword ptr [esp+20h] 5926B80A mov ecx,dword ptr [esp+1Ch] 5926B80E mov eax,dword ptr [esp+1Ch] 5926B80E ] 5926B812 MOV EDX,DWORD PTR [EDX+30H] 5926B815推动EAX 5926B816推动ECX 5926B817推动ESI 5926B818推动0 5926B81A
MOV ECX ECX,MOV ECX,7B40H CARN 5926B81F CARN 5926B81F CRESS ORRED ORRISE :: 52029999999999999999. 599999999999999.
5999999999926 38Ch (5926B83Ch) 5926B829 lea
eax,[esp+1Ch] 5926B82D push eax 5926B82E lea
ecx,[esp+2Ch] 5926B832 push ecx 5926B833 lea
ecx,[esp+5Ch] 5926B837 call DynamicHashTable >::SetValue (594172E7h) 5926B83C mov edi,dword ptr [esp+18h] 5926B840 lea edx,[esp+30h] 5926B844 push edx
5926B845 add edi,448h x,592B 88
esp+28h] 5926B84F call DynamicHashTable >::GetValueInternal (594159BEh) 5926B854 test al,al 5926B856 je PEBuilder::DefinePiaTypes+3CAh (5926B87Ah)
5926B858 mov ecx,dword ptr [esp+30h] 5926B85C mov etr [esp+30h
] 4Ch] 5926B860 cmp dword ptr [eax+ecx*4],0 5926B864 jne 5926B97F 5926B86A mov
edx,dword ptr [esp+24h] 5926B86E mov edi,dword ptr [esp+18h] 5926B872 mov dword ptr [eax+ecx*4],edx 5926B875 jmp PEBuilder::DefinePiaTypes+1B6h (591B670Bh) 5926B87A mov edi,dword ptr [esp+24h] 5926B87E mov eax,edi 5926B880 call BCSYM_NamedRoot::GetContainingClassOrInterface (5905D431h) 5926B885 test eax,eax 5926B887 jne 5926B9C4
5926B88D mov ecx,dword ptr [esp+2Ch] 5926B891 mov
eax,0FEEFEDh 5926B896 mov dword ptr [esp+ 104h],eax
5926B89D mov dword ptr [esp+100h],eax 5926B8A4 lea
(eax,[esp+100h] 5926B8AB push eax 5926B8AC push edi 5926B8AD xor ebx,ebx 5926B8AF push ecx 5926B8B0 mov dword ptr [esp+118h],ebx 5926B8B7 mov dword ptr [esp+114h],
ebxDefineERef: BE 调用590B85F4h) 5926B8C3 and
eax,0FF000000h 5926B8C8 cmp eax,2000000h 5926B8CD jne
5926B9FD 5926B8D3 mov eax,dword ptr [esp+14h] 5926B8D7 mov ecx,dword ptr [esp+4Ch] 5926B8DB cmp dword ptr [ecx+eax*4],ebx 5926B8DE jne 5926BA36 5926B8E4 mov
dword ptr [ecx+eax*4],edi 5926B8E7 mov edi,dword ptr [esp+18h] 5926B8EB inc eax 5926B8EC mov dword ptr [esp+14h],eax 5926B8F0 jmp
PEBuilder::DefinePiaTypes+1B6h (591B670Bh) 5926B8F5 lea
ecx,[esp+100h] 5926B8FC call dword ptr [__imp_std::exception::exception (590013BCh)] 5926B902 mov
byte ptr [esp+120h],5 5926B90A mov esp+100h],offset Exception:: vftable' (592A2F1Ch) 5926B95A mov dword ptr [esp+10Ch],offset string L"Key not present in t"... (592AEDA0h) 5926B965 mov byte ptr [esp+120h], 4 5926B96D push offset __TI1?AVVBRuntimeException@@ (594C15ECh) 5926B972 lea eax,[esp+104h] 5926B979 push eax 5926B97A call _ CxxThrowException@8 (59458905h) 5926B97F lea ecx,[esp+100h] ptr [269+100h] ptr [269+100h] 5vftable' (592A2F1Ch) 5926B915 mov
dword ptr [esp+10Ch],offset string L"The condition should"... (592A2E48h) 5926B920 mov byte ptr [esp+120h],4 5926B928 push offset __TI1?AVVBRuntimeException@@ (594C15ECh) 5926B92D lea edx,[esp+104h] 5926B934 push edx 5926B935 call __CxxThrowException@8 (59458905h) 5926B93A lea
ecx,[esp+100h] 5926B941 call dword ptr [__imp_std::exception::exception (590013BCh)] 5926B947 mov
byte ptr [esp+120h],6 5926B94F mov dword ptr [esp+100h],offset Exception::
_imp_std::exception::exception (590013BCh)] 5926B98C mov
byte ptr [esp+120h],7 5926B994 mov dword ptr [esp+100h],offset Exception:: vftable' (592A2F1Ch) 5926B9DE mov dword ptr [esp+3Ch] ,offset string L"条件应该"... (592AC5A0h) 5926B9E6 mov byte ptr [esp+120h],4 5926B9EE push offset __TI1?AVVBRuntimeException@@ (594C15ECh) 5926B9F3 lea edx,[esp+34h] 5926B9F7 push edx 5926B9F8 call _ CxxThrowException@8 (59458905h) 5926B9FD lea ecx,[esp+30h] 5926BA01 call dword ptr [ _imp_std::exception::exception (590013BCh)] 5926BA07 mov byte ptr [esp+120h],9 5926BA0F mov dword ptr [esp +30h],偏移异常::vftable' (592A2F1Ch) 5926B99F mov
dword ptr [esp+10Ch],offset string L"The condition should"... (592AC5A0h) 5926B9AA mov byte ptr [esp+120h],4 5926B9B2 push offset __TI1?AVVBRuntimeException@@ (594C15ECh) 5926B9B7 lea ecx,[esp+104h] 5926B9BE push ecx 5926B9BF call __CxxThrowException@8 (59458905h) 5926B9C4 lea
ecx,[esp+30h] 5926B9C8 call dword ptr [__imp_std::exception::exception (590013BCh)] 5926B9CE mov
byte ptr [esp+120h],8 5926B9D6 mov dword ptr [esp+30h],offset Exception::vftable' (592A2F1Ch) 5926BA17 mov
vftable' (592A2F1Ch) 5926BA50 mov
dword ptr [esp+3Ch],offset string L"The condition should"... (592AC5A0h) 5926BA1F mov byte ptr [esp+120h],4 5926BA27 push offset __TI1?AVVBRuntimeException@@ (594C15ECh) 5926BA2C lea eax,[esp+34h] 5926BA30 push eax 5926BA31 call __CxxThrowException@8 (59458905h) 5926BA36 lea ecx,[esp+30h] 5926BA3A call dword ptr [__imp_std::exception::exception (590013BCh)] 5926BA40 mov
byte ptr [esp+120h],0Ah 5926BA48 mov dword ptr [esp+30h],offset Exception::
dword ptr [esp+3Ch],offset string L"条件应该"... (592AC5A0h) 5926BA58 mov byte ptr [esp+120h],4 5926BA60 push offset __TI1?AVVBRuntimeException@@ (594C15ECh ) 5926BA65 lea ecx,[esp+34h] 5926BA69 push ecx 5926BA6A call __CxxThrowException@8 (59458905h) 5926BA6F mov ecx,dword ptr [esp+4Ch] 5926BA73 mov esi,dword ptr [ecx+ebxes*4]
5926BA76 测试5926BA78 je 5926BA98
5926BA7A 推 1 5926BA7C 推 ecx 5926BA7D 推
esi 5926BA7E 推 edi 5926BA7F 调用
Builder::GetTypeDef (590B83C5h) 5926BA84 mov edx,dword ptr [esp+34h] 59592BA8 add 34h,4
5926BA8C push edi 5926BA8D mov ecx,esi 5926BA8F call PEBuilder::EmitAttributesAttachedToSymbol (590B948Ah)
5926BA94 mov eax,dword ptr [esp+14h] 5926BA98 inc
ebx 5926BA99 cmp ebx,eax 5926BA9B jae 591B6774
5926BAA1 jmp 5926BA6F 5926BAA3 mov edx,dword ptr [esp +4Ch] 5926BAA7 mov ecx,dword ptr [edx+esi*4] 5926BAAA test ecx,ecx 5926BAAC je 5926BABC 5926BAAE mov
edx,dword ptr [esp+2Ch] 5926BAB2 push edi 5926BAB3 call PEBuilder::DefineMembersOfPiaType ( 59416B
) 5766Bax
,dword ptr [esp+14h] 5926BABC inc esi 5926BABD cmp
esi,eax 5926BABF jae 591B677E 5926BAC5 jmp
5926BAA3 5926BAC7 mov edx,dword ptr [edi+30h] 5926BACA push 0 5926BACC mov ecx,781Bh 5926BAD1 call
ErrorTable::CreateError (59020900h) 5926BAD6 add esp,4
5926BAD9 jmp 591B67CF 5926BADE push eax 5926BADF mov eax,dword ptr [g_vbCommonHeap (594EF058h )5926BAE4推动0 5926BAE6推动EAX 5926BAE7调用
dword ptr [_ imp _heapfree@12(590011c4h)] 5926. JMP
591B67E3 591B67EE3 5926BAF2 MOV eBX,DWORD PTR [EBX+4CH] 5926BPINMERMENM+4CHEMERMERMERMERMENM+4CHEMERMENBERN
: ,ebx 5926BAFC 调用
BCSYM::DigThroughNamedType (59002029h)