最终,在完全删除并重新安装.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 ptr [esi-0Ch] 5926B754 mov dword ptr [esp + 28h],edx 5926B758 movzx eax,byte ptr [edi] 5926B75B test byte ptr BCSYM :: s_rgBilkindInfo(59001BD8h)[eax + eax * 2],8 5926B763 je
PEBuilder :: DefinePiaTypes + 30Eh(5926B7BEh)5926B765测试
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 call
BCSYM :: DigThroughNamedType(59002029h)5926B776 mov ecx,eax 5926B778呼叫BCSYM :: PNamedRoot(59001F9Ch)5926B77D呼叫
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 5926B796 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 [eax + 4Ch] 5926B7AF mov eax,dword ptr [eax + 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 :: DefinePiaTypes + 327h(5926B7D7h)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 test eax,eax 5926B7CE je PEBuilder :: DefinePiaTypes + 325h(5926B7D5h)5926B7D0 mov
eax,dword ptr [eax + 70h] 5926B7D3 jmp
PEBuilder :: DefinePiaTypes + 327h(5926B7D7h)5926B7D5 xor
eax,eax 5926B7D7 mov eax,dword ptr [eax + 60h] 5926B7DA lea ecx,[esp + 68h] 5926B7DE推ecx 5926B7DF lea ebx,[esp + 2Ch] 5926B7E3 lea edi,[esp + 58h] 5926B7E7 mov
dword ptr [esp + 20h],eax 5926B7EB呼叫
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 test al,al 5926B800 je 5926B93A 5926B806 mov eax,dword ptr [esp + 20h] 5926B80A mov ecx,dword ptr [esp + 1Ch] 5926B80E mov edx,dword ptr [esp + 18h] 5926B812 mov edx,dword ptr [edx + 30h] 5926B815 push eax 5926B816 push ecx 5926B817推esi 5926B818推0 5926B81A mov
ecx,7B40h 5926B81F调用ErrorTable :: CreateError(59020900h) 5926B824添加esp,10h 5926B827 jmp
PEBuilder :: DefinePiaTypes + 38Ch(5926B83Ch)5926B829 lea
eax,[esp + 1Ch] 5926B82D push eax 5926B82E lea
ecx,[esp + 2Ch] 5926B832推ecx 5926B833 lea
ecx,[esp + 5Ch] 5926B837调用DynamicHashTable> :: SetValue(594172E7h)5926B83C mov edi,dword ptr [esp + 18h] 5926B840 lea edx,[esp + 30h] 5926B844 push
edx 5926B845 add edi,448h 5926B84B lea
ebx,[esp + 28h] 5926B84F调用DynamicHashTable> :: GetValueInternal(594159BEh)5926B854 test al,al 5926B856 je PEBuilder :: DefinePiaTypes + 3CAh(5926B87Ah)
5926B858 mov ecx,dword ptr [esp + 30h] 5926B85C mov
eax,dword ptr [esp + 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 调用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],ebx 5926B8BE呼叫
MetaEmit :: DefineTypeRefByContainer(590B85F4h)5926B8C3和
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调用dword ptr [__imp_std :: exception :: exception(590013BCh)] 5926B902 mov
byte ptr [esp + 120h],5 5926B90A mov dword ptr [esp + 100h],抵消Exception ::vftable' (592A2F1Ch) 5926B915 mov
vftable' (592A2F1Ch)5926B95A 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::
dword ptr [esp + 10Ch],偏移字符串L"密钥不存在于t" ... (592AEDA0h)5926B965 mov byte ptr [esp + 120h],4 5926B96D push offset __TI1?AVVBRuntimeException @@(594C15ECh)5926B972 lea eax,[esp + 104h] 5926B979 push eax 5926B97A 调用_ CxxThrowException @ 8(59458905h)5926B97F lea
ecx,[esp + 100h] 5926B986呼叫dword ptr [ _imp_std :: exception :: exception(590013BCh)] 5926B98C mov
byte ptr [esp + 120h],7 5926B994 mov dword ptr [esp + 100h],抵消Exception ::vftable' (592A2F1Ch) 5926B99F mov
vftable' (592A2F1Ch)5926B9DE 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::
dword ptr [esp + 3Ch],偏移字符串L"条件应该" ... (592AC5A0h)5926B9E6 mov byte ptr [esp + 120h],4 5926B9EE push offset __TI1?AVVBRuntimeException @@(594C15ECh)5926B9F3 lea edx,[esp + 34h] 5926B9F7推送edx 5926B9F8电话 _ 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],抵消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],偏移字符串L"条件应该" ... (592AC5A0h)5926BA58 mov byte ptr [esp + 120h],4 5926BA60 push offset __TI1?AVVBRuntimeException @@(594C15ECh)5926BA65 lea ecx,[esp + 34h] 5926BA69推ecx 5926BA6A来电 __CxxThrowException @ 8(59458905h)5926BA6F mov ecx,dword ptr [esp + 4Ch] 5926BA73 mov esi,dword ptr [ecx + ebx * 4]
5926BA76测试esi,esi 5926BA78 je 5926BA98
5926BA7A推1 5926BA7C推ecx 5926BA7D推
推 esi 5926BA7E推edi 5926BA7F呼叫
Builder :: GetTypeDef(590B83C5h)5926BA84 mov edx,dword ptr [esp + 34h] 5926BA88添加esp,4 5926BA8B push eax
5926BA8C推edi 5926BA8D mov ecx,esi 5926BA8F 调用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(59416B76h)5926BAB8 mov
eax,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 推0 5926BACC mov ecx,781Bh 5926BAD1呼叫
ErrorTable :: CreateError(59020900h)5926BAD6 add esp,4
5926BAD9 jmp 591B67CF 5926BADE push eax 5926BADF mov eax,dword ptr [g_vbCommonHeap(594EF058h)] 5926BAE4 push 0 5926BAE6 push eax 5926BAE7 call
dword ptr [_ imp _HeapFree @ 12(590011C4h)] 5926BAED jmp
591B67E3 5926BAF2 mov ebx,dword ptr [ebx + 4Ch] 5926BAF5 jmp PEBuilder :: DefineMemberOfContainer + 2Bh(591933E9h)
5926BAFA mov ecx,ebx 5926BAFC调用
BCSYM :: DigThroughNamedType(59002029h)