How to investigate and report Visual Studio issues

How to investigate and report Visual Studio issues

  • Comments 7

With the Visual Studio 2010 RC released, here are some tips to help you help us find and fix the remaining issues.

We want Visual Studio to have no bugs. If you want the same and are willing to help us a little, read on! And thanks so much for trying it out!

Help –> Customer Feedback Options

First off, enabling the Customer Experience Improvement Program is a very helpful step!

image

image

This will enable sending detailed error reports when Visual Studio crashes or hangs that GREATLY help us to identify the root cause of a problem.

Send Error Report

When Visual Studio crashes or hangs, you will be presented with the so-called "Watson dialog" – a choice to "Send Error Report" or "Do Not Send":

image

By clicking "Send Error Report" you greatly contribute to making Visual Studio better – this is the one most important thing that will help us the most.

Watson Bucket ID

After the crash has been submitted, two error entries are created in the Application Event Log in Control Panel –> Administrative Tools –> Event Viewer:

Event 1000 and Event 1001 (may also be others, like Event 1023).

The most interesting one is Event 1001, because it will contain the Watson Bucket ID:

Bucket 1040873707, bucket table 1, faulting application devenv.exe, version 10.0.30128.1, stamp 488f2b50, faulting module cslangsvc.dll, version 10.0.30128.1, stamp 488f2dea, debug? 0, fault address 0x000ceedd.

Knowing this bucket, Microsoft employees who are helping you with the problem can find the information you submitted in our tracking system. This is helpful during investigations.

ActivityLog.xml

If the error you're seeing reproduces consistently, you can usually get more information by starting Visual Studio with the /log switch like this: devenv.exe /log

This MSDN page contains a nice description of the Visual Studio activity log: http://msdn.microsoft.com/en-us/library/ms241272.aspx

You can find the log file in %APPDATA%\Microsoft\VisualStudio\10.0\ActivityLog.xml

This log is especially useful if the error you're seeing happens at Visual Studio startup when it's loading packages.

Search for the error text

If you're getting an error message, try using your favorite search engine to search the internet for it – maybe someone has already encountered it before?

Log a Connect bug

To actually let us know that you've found a bug, the central location to do this is the Microsoft Connect website: https://connect.microsoft.com/visualstudio/feedback

By opening a bug there it gets directly inside our bug tracking system.

You Can Do More: minidump and call stack

A while ago I wrote an article called How to debug crashes and hangs. This article explains in great detail what steps you need to do to create a minidump with heap of Visual Studio when it has crashed or is hanging.

The simple way is, if you're running Windows Vista or later, just open Task Manager, click Processes, find the Visual Studio process (devenv.exe), right-click and select Create Dump File.

That's it! It will create the large minidump file in your Temp directory and show a message box with the path where it saved the file.

The original article can help if you're running Windows XP or in a more advanced case, when you also want to get the call stack, load symbols and so on. But usually a minidump file (.dmp) should be sufficient.

How to send us the minidump

The minidump file is usually huge (hundreds of megabytes), because it contains the exact snapshot of the full process memory of devenv.exe. To send us the minidump, open a bug on Connect and mention that you have a dump file. The MS employee who looks at the bug should give you a path to the temporary FTP website where you can upload the dump using FTP. If they don't give you this site or you have any other problems, just let me know.

Debugging errors that are not crashes using First Chance Exceptions

You might encounter an error which does not fully crash Visual Studio, and does not show the Watson dialog. In this case, there is still a good chance of finding what's going on and providing us with useful information about the error.

For this you'll need to attach a debugger to the Visual Studio process (usually open another Visual Studio side by side). Again, a detailed tutorial is here. Just before the error is about to happen, break into debugger, and enable first chance exceptions (check everything in Debug –> Exceptions). Then resume debugging and let the error happen. Chances are that the exception will be thrown, but it will be subsequently suppressed. Enabling first-chance exceptions helps you to preview that exception before it gets swallowed. Once the exception happens, copy the Call Stack from the debugger Callstack toolwindow (Ctrl+A) and paste it into notepad. Sending us this call stack will be invaluable. Also, you can go to Debug –> Save Dump As and create a minidump with heap file (.dmp) from the current debuggee process state. Again, sending us this dump file and the call stack should really help a lot.

One warning here is that there might be "red herrings" along the way – false first-chance exceptions which are normal and do not lead to an error. If you can't tell whether the first-chance exception you're seeing is normal or is the actual root cause of the error, send us the call stack for this and we'll be able to help further.

devenv.exe /ResetSettings

If you believe that you've gotten Visual Studio into a weird state with weird settings, one last resort is trying to start Visual Studio with the /ResetSettings switch:

devenv.exe /ResetSettings

This will reset the Visual Studio settings to the defaults and maybe help you solve the problem.

devenv.exe /ResetSkipPkgs

If you've had a Package Load Failure, running devenv.exe with the /ResetSkipPkgs flag will re-enable those failed packages and will try loading them again.

devenv.exe /ResetUserData

As a last resort, you can also try /ResetUserData.

devenv.exe /SafeMode

Or /SafeMode.

devenv.exe Command Line Switches

Here are other Visual Studio command line switches: http://msdn.microsoft.com/en-us/library/xee0c8y7.aspx

New: Visual Studio Setup Log Collection Utility

Check out the instructions here on how to use collect.exe to collect the logs: http://blogs.msdn.com/heaths/archive/2008/05/09/visual-studio-and-net-log-collection-utility.aspx

Thanks!

Thanks again for making Visual Studio a better product!

  • Hey Kirill.  Great little overview!

    Would using the Windows 7 and (Windows Server 2008 R2) Problem Steps Recorder ( http://msdn.microsoft.com/en-us/library/dd371782%28VS.85%29.aspx ) also be useful for reproducible issues?

    Cheers -- Peter

  • I'm getting tons of package load errors.  Uninstalled b2 and everything I could find before installing the RC.  

    https://connect.microsoft.com/VisualStudio/feedback/details/532121/tons-of-package-did-not-load-correctly-errors?wa=wsignin1.0#tabs

  • Hi Will,

    I've just added a link to the log collection utility:  http://blogs.msdn.com/heaths/archive/2008/05/09/visual-studio-and-net-log-collection-utility.aspx

    Hope this helps,

    Kirill

  • Why do we still have to remember all these switches and do all these things (check event log,  go to Connect, create minidump, use log connection utitliy)? Why don't you just add a menu (e.g. "Troubleshooting") as a central entry point for every problem we encounter which automatically collects all required information and can perform actions such as reset settings or restart in safe-mode. Why do you have to make the user experience so awful? Just because we as developers are the only audience that would accept it? If you made error reporting easier (and more efficient for the user)then a lot more issues would be reported. Not many people are going to report issues if it takes then more than 5 mins and/ have to look up switches, download tools, collect logs, look for information, etc..

  • @Hermann:

    I completely agree with you.

    I think it's better to create a VS Diagnostic Tool comprises a set of trouble-shooters for well-known VS problems. Of course, it should bundled with VS product package. It just reminds me of Windows 7 trouble shooters.

  • Thanks Hermann and Maximilian!

    I've added a suggestion to improve this story in a future release.

    Kirill

  • Thanks! "devenv.exe /ResetSkipPkgs" helped with Beta 2 too.

Page 1 of 1 (7 items)
Leave a Comment
  • Please add 8 and 8 and type the answer here:
  • Post