The official source of product insight from the Visual Studio Engineering Team
We recently blogged about a crashing bug in the Visual Studio 2010 Release Candidate (RC) on machines using UI Automation (UIA). We’ve since discovered that there are actually two bugs, both of which will only affect a certain group of users but will cause the IDE to be very unstable for those users. Both of these issues now have patches available for the RC and have already been fixed for VS 2010 RTM.
Both bugs affect the same group of users. Only machines with the Visual Studio 2010 RC and an application or device actively using UI Automation 3.0 APIs are affected. This includes but may not be limited to RC users who are using touch displays, tablet PCs, screen reader software, and some 3rd-party applications.
Both bugs cause Visual Studio to be quite unstable. Bug #1 causes frequent crashing during rapid typing in the editor while IntelliSense is popping up and/or being dismissed. Bug #2 causes somewhat less frequent crashing during tooltip invocation, most commonly when hovering over an identifier to view a QuickInfo tooltip.
There are two separate patches available for these issues in the VS 2010 RC, and we’d encourage RC users to download and install them both. We also have fixes for both bugs checked in for VS 2010 RTM. You won’t need a patch or workaround for the final release, and you’ll be able to use the RTM build on machines with UIA without experiencing these crashes.
If you have any questions about this issue, please feel free to post in the comments below. If you’re experiencing crashes without UIA or in scenarios without IntelliSense, the root cause is likely different, so we’d encourage you to collect a crash dump if possible and file a Connect bug so we can investigate.
Brittany Behrens Program Manager, Visual Studio Editor Team
I’m Brittany, a Program Manager on the Visual Studio Editor team. Some of you may recognize me from Connect bugs or as the main voice of @VSEditor on Twitter, and I’m responsible for a variety of Editor features. I love hearing from customers, so please let me know what you think!
I am having a problem with 2010 Express where the IDE crashes and appears to relate to intellisense. If I type "Inpu" and select "InputBox" from the options offered and press the "open bracket" the IDE returns "Microsoft VB 2010 has encountered a problem and needs to close" then sometimes it just closes and other it returns another message "Microsoft VB 2010 Express has stopped working" If I cut and paste the InputBox command there are no problems, its only when I hit the "Open Bracket". What makes this even weirder is I have been using this install of IDE for months without a problem. I work on two machines, a laptop at home and a desktop at work and pass the developing application to each via Dropbox.com. Any clues??
Could you attach an instance of VS to VS before making it crash, enable mixed mode debugging, turn off 'Just My Code' and point it at the public Microsoft symbol servers? If you then repro the crash it should break into the debugging VS instance with information and you can grab a callstack. You can send it to me at rmolden AT microsoft.com and I can take a look to see if anything obvious jumps out at me.
Have you installed any new extensions lately?
Thank you for the response, I'm afraid my knowledge is not up to this level. How do I attach an instance of of VS to VS? I can turn off "Enable Just My Code" in options (currently turned off)and have also ticked Microsoft Symbol Servers.
I haven't installed any new extensions lately.
You should be able to launch two instances of VS. Open a project in one so it is easy to identify in the latter steps. In the other VS instance go to Tools->Attach To Process (I believe this is available in the Express SKUs, if not we would have to use WinDBG, which is...a little less user friendly :)). Select devenv.exe from the list of listed processes (make sure it is the one whose Title field is showing the project you opened in the other VS instance), also make sure that the Attach To combo above the list of processes is set to "Managed (v4.0) code, Native code". That should then attach to the other instance of VS, if you switch over to it now and reproduce the crash it should then break into the instance that is debugging and present you with the exception information and a callstack.
Wouldn't you know there is no "Attach To Process" on the Tools Menu. Should I download WinDBG?
Sure, definetly less user friendly, but here are the steps you should follow
1: Launch VS as before and load a project.
2: Launch WinDBG.
3: In WinDBG choose File->Attach to a process...
4: Find Devenv.exe in the list shown in the dialog that comes up.
5: Choose Ok (it will say something like 'save information for workspace', you can say no to that)
6: Once it has attached go to File->Symbol File Path and enter this into the pop-up dialog (without the quotes) "SRV*msdl.microsoft.com/.../symbols"
7: Click OK
8: Go back to VS.
9: Make it crash.
10: Go back to Windbg.
11: Type ".loadby sos clr" into the typing area at the bottom of the screen and hit enter (again without the quotes).
12: type "~0s" into the typing area and hit enter (again, no quotes)
13: type "k" into the typing area (again, no quotes) and hit enter.
That should give you a callstack dumped to the window above where you have been typing, hopefully it will have nice resolved symbols and such (due to step 6), if you could post that here or send it to my mail I can see if anything obvious is wrong or if there is a known bug you are seeing.
And the string in step 6 which the blog software turned into a hyperlink should be SRV* followed by HTTP:// followed by msdl.microsoft.com/download/symbols. Hopefully my spacing above is enough to prevent the blog software from once again turning it into a hyperlink :)
It looks like a big download (300MB) so will try as you say and let you know what happens.
Are you getting it from here: www.microsoft.com/.../confirmation.aspx
I think you can unselect everything except the 'debugging tools', you just need WinDBG...not sure if there is an easier way to get it but you don't need all the SDK stuff that they seem to be bundling it with.
That page I linked has these instructions for 'slimming down' the download (You probably want the 'Debugging Tools' under Common Utilities, the x86 version), make sure to uncheck everything else like they say to avoid downloading stuff you don't need:
The Debugging Tools are listed in two places on the Installation Options screen in the Windows SDK Setup Wizard:
Select the Debugging Tools option under the Common Utilities if you want the x86 version of the Debugging Tools and you are installing on an x86 computer. This option automatically detects the CPU architecture of the computer on which you are installing the tools and it is the fastest method of installing the tools.
Select the Debugging Tools option under the Redistributable Packages to download all three versions of the Debugging Tools (x86, x64, Itanium).
After you select the appropriate Debugging Tools option as described above, clear the check boxes for the other options so that you do not install unnecessary items. The Common Utilities option downloads the Debugging Tools into a Debugging Tools for Windows folder under your Program Files folder. The Redistributable Packages option downloads the Debugging Tools to C:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows.
Have downloaded WinDBG and launched it, however there is no Process named Devenv.exe
Hmmm, what is the name of the VB Express executable? If you look at the shortcut link what is it pointing at? That is the name of the executable we are looking for. It might be something like VBExpress.exe or something.
Attached to process: vbExpress.exe and the following was displayed in the window:
eax=00694248 ebx=0029f118 ecx=00694248 edx=00912f88 esi=00000001 edi=00000000
eip=77a96344 esp=0029f0c8 ebp=0029f164 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
77a96344 c3 ret
0029f0c4 77a95cac ntdll!KiFastSystemCallRet
0029f0c8 75c76872 ntdll!ZwWaitForMultipleObjects+0xc
0029f164 76bcf14a KERNELBASE!WaitForMultipleObjectsEx+0x100
0029f1ac 76c790be kernel32!WaitForMultipleObjectsExImplementation+0xe0
0029f200 65e0dc17 USER32!RealMsgWaitForMultipleObjectsEx+0x13c
0029f250 65e130cb msenv!CMsoCMHandler::EnvironmentMsgLoop+0x139
0029f290 65e12ffc msenv!CMsoCMHandler::FPushMessageLoop+0x156
0029f2b4 65e12f5d msenv!SCM::FPushMessageLoop+0xab
0029f2d0 65e12f2a msenv!SCM_MsoCompMgr::FPushMessageLoop+0x2a
0029f2f0 65e12e6c msenv!CMsoComponent::PushMsgLoop+0x28
0029f388 65d2db92 msenv!VStudioMainLogged+0x553
0029f3b4 00fe8fd0 msenv!VStudioMain+0xbc
0029f3ec 00fe3277 vbexpress!util_CallVsMain+0xfd
0029f6d8 00fe46cc vbexpress!CVBExpressId::Run+0x8d9
0029f708 00ffd01d vbexpress!WinMain+0x9c
0029f79c 76bd1194 vbexpress!operator new+0x1e1
0029f7a8 77aab429 kernel32!BaseThreadInitThunk+0xe
0029f7e8 77aab3fc ntdll!__RtlUserThreadStart+0x70
0029f800 00000000 ntdll!_RtlUserThreadStart+0x1b
Does this mean anything to you??
That is just the process waiting for messages, if you hit F5 in Windbg and then switch back to VB Express and make it crash then go back to WinDBG and do the ~0s, k it would probably be more interesting. Or kp (to also show function arguments).
Did as you said
(9fc.1238): C++ EH exception - code e06d7363 (first chance)
(9fc.1238): CLR exception - code e0434352 (first chance)
(9fc.1238): CLR exception - code e0434352 (!!! second chance !!!)
eax=0029c3ec ebx=00000005 ecx=00000005 edx=00000000 esi=0029c498 edi=00402258
eip=75c79617 esp=0029c3ec ebp=0029c43c iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
75c79617 c9 leave
. 0 Id: 9fc.1238 Suspend: 1 Teb: 7ffdf000 Unfrozen
Start: vbexpress!WinMainCRTStartup (00ffd16a)
Priority: 0 Priority class: 32 Affinity: f
0029c43c 656dac08 KERNELBASE!RaiseException+0x58
0029c4cc 6574ab0b clr!RaiseTheExceptionInternalOnly+0x276
0029c508 65908e1e clr!UnwindAndContinueRethrowHelperAfterCatch+0x60
*** WARNING: Unable to verify checksum for C:\windows\assembly\NativeImages_v4.0.30319_32\PresentationCore\7a1eeb425f9318f432afead4b2da965a\PresentationCore.ni.dll
0029c5a4 624db3bd clr!JIT_RngChkFail+0xde
0029c5ec 61d9ba06 PresentationCore_ni+0x8fb3bd
0029c668 61d9b5ae PresentationCore_ni+0x1bba06
0029c6e8 61d9b26f PresentationCore_ni+0x1bb5ae
0029c738 61d9a30b PresentationCore_ni+0x1bb26f
0029c7c0 61d99c71 PresentationCore_ni+0x1ba30b
0029c7ec 61d99bd2 PresentationCore_ni+0x1b9c71
*** WARNING: Unable to verify checksum for C:\windows\assembly\NativeImages_v4.0.30319_32\PresentationFramewo#\8357ade60159c25ee88db0aab8686e6d\PresentationFramework.ni.dll
0029c81c 60deb750 PresentationCore_ni+0x1b9bd2
0029c994 60dc475a PresentationFramework_ni+0x2eb750
0029cba0 61d873c3 PresentationFramework_ni+0x2c475a
0029cc24 60dfa8d2 PresentationCore_ni+0x1a73c3
0029cc78 60df9dc5 PresentationFramework_ni+0x2fa8d2
0029cd10 60df90eb PresentationFramework_ni+0x2f9dc5
0029cdd8 60dc475a PresentationFramework_ni+0x2f90eb
0029cfe4 61d873c3 PresentationFramework_ni+0x2c475a
0029d068 60dfa8d2 PresentationCore_ni+0x1a73c3
0029d0bc 60df9dc5 PresentationFramework_ni+0x2fa8d2
0029d154 60df90eb PresentationFramework_ni+0x2f9dc5
0029d21c 60dc475a PresentationFramework_ni+0x2f90eb
0029d428 61d873c3 PresentationFramework_ni+0x2c475a
0029d4ac 60dfac5b PresentationCore_ni+0x1a73c3
0029d4e4 60dfdc20 PresentationFramework_ni+0x2fac5b
0029d4fc 60dc475a PresentationFramework_ni+0x2fdc20
0029d708 61d873c3 PresentationFramework_ni+0x2c475a
0029d78c 60ded65f PresentationCore_ni+0x1a73c3
0029d864 60dc475a PresentationFramework_ni+0x2ed65f
0029da70 61d873c3 PresentationFramework_ni+0x2c475a
0029daf4 60dfaa7e PresentationCore_ni+0x1a73c3
0029db3c 60dc475a PresentationFramework_ni+0x2faa7e
0029dd48 61d873c3 PresentationFramework_ni+0x2c475a
0029ddcc 60df8dbc PresentationCore_ni+0x1a73c3
0029de8c 60dc475a PresentationFramework_ni+0x2f8dbc
0029e098 61d873c3 PresentationFramework_ni+0x2c475a
*** WARNING: Unable to verify checksum for C:\windows\assembly\NativeImages_v4.0.30319_32\Microsoft.VisualStu#\0ae881ae2f569623ae0b15ace2014e6f\Microsoft.VisualStudio.Platform.VSEditor.ni.dll
0029e11c 5d0f13a7 PresentationCore_ni+0x1a73c3
0029e154 5d0f0bbe Microsoft_VisualStudio_Platform_VSEditor_ni+0x1413a7
0029e8a0 5d0ef876 Microsoft_VisualStudio_Platform_VSEditor_ni+0x140bbe
0029e8bc 5d10e518 Microsoft_VisualStudio_Platform_VSEditor_ni+0x13f876
0029e904 5d10e47c Microsoft_VisualStudio_Platform_VSEditor_ni+0x15e518
*** WARNING: Unable to verify checksum for C:\windows\assembly\NativeImages_v4.0.30319_32\WindowsBase\f1f3a74eb37b27b7d05b8ffa941f8473\WindowsBase.ni.dll
0029e920 6271fac2 Microsoft_VisualStudio_Platform_VSEditor_ni+0x15e47c
0029e960 627229b5 WindowsBase_ni+0xafac2
0029e9ac 62722918 WindowsBase_ni+0xb29b5
0029e9c4 656521db WindowsBase_ni+0xb2918
0029e9d4 65674a2a clr!CallDescrWorker+0x33
0029ea50 65674bcc clr!CallDescrWorkerWithHandler+0x8e
0029eb8c 65674c01 clr!MethodDesc::CallDescr+0x194
0029eba8 65674c21 clr!MethodDesc::CallTargetWorker+0x21
0029ebc0 656ef5f8 clr!MethodDescCallSite::Call+0x1c
0029eda4 656ef74f clr!ExecuteCodeWithGuaranteedCleanupHelper+0xbb
*** WARNING: Unable to verify checksum for C:\windows\assembly\NativeImages_v4.0.30319_32\mscorlib\4ff1f12a08d455f195ba996fe77497c6\mscorlib.ni.dll
0029ee50 64ab4cba clr!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+0x138
0029ee88 64ab7f34 mscorlib_ni+0x234cba
0029eea8 62722848 mscorlib_ni+0x237f34
0029eee8 6271e57e WindowsBase_ni+0xb2848
0029ef2c 6271e70f WindowsBase_ni+0xae57e
0029ef6c 6271fdb6 WindowsBase_ni+0xae70f
0029efb8 6271fce5 WindowsBase_ni+0xafdb6
0029efd8 6271fb93 WindowsBase_ni+0xafce5
0029eff0 6271fac2 WindowsBase_ni+0xafb93
0029f030 6271e050 WindowsBase_ni+0xafac2
0029f074 6271f5e0 WindowsBase_ni+0xae050
0029f0f0 76c786ef WindowsBase_ni+0xaf5e0
0029f11c 76c78876 USER32!InternalCallWinProc+0x23
0029f194 76c789b5 USER32!UserCallWinProcCheckWow+0x14b
0029f1f4 76c78e9c USER32!DispatchMessageWorker+0x35e
0029f204 65e0d42b USER32!DispatchMessageW+0xf
0029f214 65e0d521 msenv!ProcessMessage+0x69
0029f250 65e130cb msenv!CMsoCMHandler::EnvironmentMsgLoop+0xd8