<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Visual Studio Debugger Team Blog</title><subtitle type="html" /><id>http://blogs.msdn.com/b/debugger/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/b/debugger/atom.aspx" /><generator uri="http://telligent.com" version="5.6.583.14036">Community Server</generator><updated>2009-11-04T21:05:00Z</updated><entry><title>Visual Studio debugger fails to catch unhandled exception for a Windows Form or WPF Application?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/05/12/visual-studio-debugger-fails-to-catch-unhandled-exception-for-a-windows-form-or-wpf-application.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/05/12/visual-studio-debugger-fails-to-catch-unhandled-exception-for-a-windows-form-or-wpf-application.aspx</id><published>2010-05-12T01:51:31Z</published><updated>2010-05-12T01:51:31Z</updated><content type="html">&lt;p&gt;Ever begin debugging a Windows Form to have the form close suddenly without the debugger alerting you to the exception?&amp;nbsp; Or have you ever been stepping through the Form_Load event handler (or a method called by the Form_Load event handler) in a WPF application only to have it unexpectedly bring up the form instead of stepping to the next line?&amp;nbsp; &lt;strong&gt;If you have, chances are you were running an x64 version of Windows…&lt;/strong&gt;“&lt;strong&gt;yes?&lt;/strong&gt;”, &lt;strong&gt;keep reading to learn why; &lt;/strong&gt;“no?” you are encountering a different issue and please let us know about it through &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx"&gt;Microsoft Connect&lt;/a&gt;.&lt;/p&gt; &lt;h5&gt;Why can’t the debugger catch/break on my unhandled exception on x64 versions of Windows?&lt;/h5&gt; &lt;p&gt;The reason this happens on x64 versions of Windows is a design decision by the Windows operating system; x64 versions of Windows do not allow user mode exceptions to propagate post a kernel transition on the call stack.&amp;nbsp; What happens is when an exception is thrown in an application, it travels backward on the call stack until it either reaches an exception handler or the application’s “Main()” method.&amp;nbsp; If the exception reaches the application’s “Main()” method without being handled, the debugger recognizes that the exception went unhandled and breaks the application where the exception occurred.&amp;nbsp; As shown below, the Form_Load method causes a kernel transition, so when an exception thrown in a Form_Load method reaches the kernel frame on the callstack, the operating system catches the exception.&amp;nbsp; Since the exception is caught before it reaches the “Main()” method, from the debugger’s perspective the exception was caught—the debugger is unable to determine that the exception was caught by the operating system , not the user code.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudiodebuggerfailstocatchunhandle_E6DC/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudiodebuggerfailstocatchunhandle_E6DC/image_thumb_2.png" width="891" height="550"&gt;&lt;/a&gt; &lt;/p&gt; &lt;h5&gt;&lt;/h5&gt; &lt;h5&gt;How can I tell if this is my problem?&lt;/h5&gt; &lt;p&gt;This problem can manifest itself in different ways depending on the type of exception.&amp;nbsp; Both Windows Forms, and WPF applications have exception handling code in the underlying framework that will catch certain types of exceptions (e.g. NullReferenceException), so in some cases your application will crash with an unhandled exception, in other cases the form will load and appear, however the Form_Load method (and all subsequent calls) will not have correctly run to completion.&amp;nbsp; There will however be a message in the “Output” window that “A first Chance exception of type ‘&amp;lt;exception type&amp;gt;’ occurred in &amp;lt;application’s name&amp;gt;”&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudiodebuggerfailstocatchunhandle_E6DC/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudiodebuggerfailstocatchunhandle_E6DC/image_thumb_4.png" width="753" height="174"&gt;&lt;/a&gt; &lt;/p&gt; &lt;h5&gt;Workaround&lt;/h5&gt; &lt;p&gt;Unfortunately there isn’t a lot the debugger can do in this case since the operating system catches the exception (explained above).&amp;nbsp; The workaround in Visual Studio is to enable “First Chance” exceptions for the exception types that are being thrown in the Form_Load method.&amp;nbsp; To to this:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Navigate to the “Debug” menu, and select “Exceptions”  &lt;li&gt;Check the “Thrown” box for the “Common Language Runtime Exceptions” row.&amp;nbsp; (Note:&amp;nbsp; You can expand the Exceptions using the “+” sign and only check the "Thrown” box for the desired exceptions")&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudiodebuggerfailstocatchunhandle_E6DC/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudiodebuggerfailstocatchunhandle_E6DC/image_thumb.png" width="629" height="317"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10011341" width="1" height="1"&gt;</content><author><name>andrehal</name><uri>http://blogs.msdn.com/andrehal/ProfileUrlRedirect.ashx</uri></author><category term="Unhandled Exception" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Unhandled+Exception/" /><category term="Visual Studio Debugger" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Visual+Studio+Debugger/" /></entry><entry><title>Can’t hit breakpoints in a plug-in or can’t debug .NET 2.0/3.0/3.5 from a mixed mode .exe project with Visual Studio 2010?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/04/30/can-t-hit-breakpoints-in-a-plug-in-or-can-t-debug-net-2-0-3-0-3-5-from-a-mixed-mode-exe-project-with-visual-studio-2010.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/04/30/can-t-hit-breakpoints-in-a-plug-in-or-can-t-debug-net-2-0-3-0-3-5-from-a-mixed-mode-exe-project-with-visual-studio-2010.aspx</id><published>2010-04-29T23:08:41Z</published><updated>2010-04-29T23:08:41Z</updated><content type="html">&lt;p&gt;With Visual Studio 2010 came the release of Visual Studio .NET 4.0.&amp;nbsp; .NET 4.0 adds a lot of great features and new capabilities; however with .NET 4.0 came a new 4.0 debug engine in Visual Studio 2010 (so there are now two managed debug engines, 2.0/3.0/3.5 and 4.0).&amp;nbsp; Ordinarily if you are developing/debugging your managed application inside of Visual Studio and begin debugging (F5) Visual Studio knows which engine to use.&amp;nbsp; Likewise if you are attaching to a process, Visual Studio is able to tell which version of the .NET Runtime you are running on and attaches with the appropriate managed engine.&amp;nbsp; &lt;/p&gt; &lt;p&gt;There are two scenarios however that people have been encountering since Visual Studio 2010 released where Visual Studio cannot correctly determine which engine to attach with, and therefore uses the default of 4.0 leaving 2.0/3.0/3.5 applications “un-debuggable”; (1) &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/22d4c3d3-bf77-40ed-8b1b-64223019f3f1"&gt;developing a class library plug-in for a third party application (Excel, Work, AutoCAD, etc)&lt;/a&gt;, and (2) &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/details/554067/cannot-debug-net-2-0-3-0-3-5-code-using-f5-in-mixed-mode-from-native-c-projects-or-c-project-with-start-external-program-set-to-native-exe"&gt;interop debugging when launching a native .exe project&lt;/a&gt;.&amp;nbsp; In both cases the symptoms will be the same, you will be unable to hit breakpoints in your managed code (they will be hollow with a message that “No symbols have been loaded for this document”) as well as being unable to step into the managed code.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/Canthitbr.exeprojectwithVisualStudio2010_D3B4/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/Canthitbr.exeprojectwithVisualStudio2010_D3B4/image_thumb.png" width="623" height="105"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;As I explained above, the cause of this is the managed application is 3.5 or previous, and the debugger is attached with the 4.0 engine.&amp;nbsp; The best workaround is to add a &amp;lt;supportedRuntime&amp;gt; tag to your application’s *.exe.config file.&amp;nbsp; For example, if I am debugging the application foo.exe I would edit (or create if necessary) the foo.exe.config file in the same directory as foo.exe.&amp;nbsp; I would then add the &amp;lt;supportedRuntime&amp;gt; tag with the correct version of the .NET runtime in the &amp;lt;startup&amp;gt; section as shown in the example below.&amp;nbsp; This will let Visual Studio know which version of the .NET runtime you will be running (so if you are developing a class library plug-in for Excel, you would add the &amp;lt;supportedRuntime&amp;gt; tag to the excel.exe.config file).&lt;/p&gt; &lt;p&gt;&amp;lt;!-- sample foo.exe.config --&amp;gt;&lt;br&gt;&amp;lt;?xml version ="1.0"?&amp;gt;&lt;br&gt;&amp;lt;configuration&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;startup&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;supportedRuntime version="v2.0.[version on your machine]" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/startup&amp;gt;&lt;br&gt;&amp;lt;/configuration&amp;gt;  &lt;p&gt;To determine the correct [version on your machine] look in the “C:\Windows\Microsoft.NET\Framework” directory for the most recent “v2.0.xxxxx” folder.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/Canthitbr.exeprojectwithVisualStudio2010_D3B4/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/Canthitbr.exeprojectwithVisualStudio2010_D3B4/image_thumb_1.png" width="435" height="295"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10004881" width="1" height="1"&gt;</content><author><name>andrehal</name><uri>http://blogs.msdn.com/andrehal/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Why don’t I see “Debug with Mixed” when debugging the dump of a managed process in Visual Studio 2010</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/04/28/why-don-t-i-see-debug-with-mixed-when-debugging-the-dump-of-a-managed-process-in-visual-studio-2010.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/04/28/why-don-t-i-see-debug-with-mixed-when-debugging-the-dump-of-a-managed-process-in-visual-studio-2010.aspx</id><published>2010-04-28T20:38:00Z</published><updated>2010-04-28T20:38:00Z</updated><content type="html">&lt;P&gt;It has been well publicized that Visual Studio 2010 introduced the ability to &lt;A href="http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-Debugging-Crash-Dumps-with-Tess-Ferrandez-and-VS2010/" mce_href="http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-Debugging-Crash-Dumps-with-Tess-Ferrandez-and-VS2010/"&gt;debug dumps of managed processes in mixed mode&lt;/A&gt; (as opposed to the old days of &lt;A href="http://msdn.microsoft.com/en-us/library/yy6d2sxs.aspx" mce_href="http://msdn.microsoft.com/en-us/library/yy6d2sxs.aspx"&gt;native debugging + SOS in the Immediate Window&lt;/A&gt;).&amp;nbsp; The one fact about this new feature that often gets overlooked or forgotten is that mixed mode debugging only works for dumps of processes that were running on CLR v4.0.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You might ask, “why only do the feature halfway?”.&amp;nbsp; The answer to this, is that the ability to debug dumps of managed processes in mixed mode required an architectural change by the CLR team that was made in v4.&amp;nbsp; So dumps of processes that were running .NET 3.5 and previous will still need to be debugged using SOS.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Can’t remember or not sure which version of the CLR the process was running on?&amp;nbsp; The new Visual Studio 2010 Minidump Summary page tells you:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhydontIseeDebugwithMixedwhendebuggingth_F75B/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhydontIseeDebugwithMixedwhendebuggingth_F75B/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhydontIseeDebugwithMixedwhendebuggingth_F75B/image_thumb.png" width=378 height=372 mce_src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhydontIseeDebugwithMixedwhendebuggingth_F75B/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10004103" width="1" height="1"&gt;</content><author><name>andrehal</name><uri>http://blogs.msdn.com/andrehal/ProfileUrlRedirect.ashx</uri></author><category term="Visual Studio 2010" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Visual+Studio+2010/" /><category term="Visual Studio 2010 Debugger" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Visual+Studio+2010+Debugger/" /><category term="Managed Minidump Debugging" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Managed+Minidump+Debugging/" /></entry><entry><title>Jinx: Visual Studio plug-in for debugging multi-threaded code</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/04/27/jinx-visual-studio-plug-in-for-debugging-multi-threaded-code.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/04/27/jinx-visual-studio-plug-in-for-debugging-multi-threaded-code.aspx</id><published>2010-04-27T00:56:00Z</published><updated>2010-04-27T00:56:00Z</updated><content type="html">&lt;P&gt;Today I’m going to introduce a plug-in for Visual Studio (still in beta) that helps to speed up finding concurrency bugs in multi-threaded applications. 
&lt;H3&gt;Example of a concurrency bug&lt;/H3&gt;
&lt;P&gt;Consider an application that has two threads (“Thread A” and “Thread B”) that share a common stack. Each thread reads (pops) one value off the stack and then writes (pushes) one value back onto the stack; and between pushes and pops these threads do other work. During testing the application &lt;I&gt;almost&lt;/I&gt; always works correctly; however occasionally the application crashes. The test team records data inputs, machine configurations, and use of the application, unfortunately after hours of this they are still unable to reliably reproduce the crash. It turns out that this a concurrency bug (a bug that occurs only if the order of events that produce the crash occur with the exact “right” timing) in the following stack_push() function , which makes reproducing the bug very unreliable. 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#008000&gt;//Push the given node onto the stack&lt;/FONT&gt; &lt;BR&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; stack_push (&lt;FONT color=#0000ff&gt;struct&lt;/FONT&gt; stack *stack, &lt;FONT color=#0000ff&gt;struct&lt;/FONT&gt; node *node){ &lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct&lt;/FONT&gt; node * old_top; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;static int&lt;/FONT&gt; count = 0; &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;while&lt;/FONT&gt;(1) { &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;old_top = stack-&amp;gt;top; &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;node-&amp;gt;next = old_top; &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt; (stack-&amp;gt;top == old_top){ &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;stack-&amp;gt;top = node; &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;break&lt;/FONT&gt;; &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;} &lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;} &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;FONT color=#008000&gt;// only valid if there are no concurrent pops &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;assert_stack_contains(stack,node); &lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If the threads execute in the following order&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=151&gt;
&lt;P&gt;Thread A&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=132&gt;
&lt;P&gt;Thread B&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=151&gt;
&lt;P&gt;Read stack-&amp;gt;top&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=132&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=151&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top width=132&gt;
&lt;P&gt;Read stack-&amp;gt;top&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=151&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top width=132&gt;
&lt;P&gt;Write stack-&amp;gt;top&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=151&gt;
&lt;P&gt;Write stack-&amp;gt;top&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=132&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;Thread B’s push operation is overwritten by Thread A’s push operation resulting in the bug. During ordinary execution this exact sequence of events can take hundreds or thousands of runs to occur; this is where the Jinx concurrency debugger comes in. &lt;/P&gt;
&lt;H3&gt;Introduction to Jinx&lt;/H3&gt;
&lt;P&gt;&lt;U&gt;&lt;/U&gt;
&lt;P&gt;Jinx works by making a copy of the application’s state while it is being executed, and then runs multiple "simulations" of the application in the background trying to force concurrency bugs to appear. Since concurrency bugs normally occur in or around code that accesses shared data, Jinx adds artificial wait states to the simulations so that shared memory accesses occur as close together as possible. In this way, it can potentially reproduce concurrency issues such as the one demonstrated above in far fewer runs than waiting for the correct order of events to naturally occur on the system. 
&lt;P&gt;Unfortunately once the bug is reproduced, locating the problem code can be much harder. One issue that can interfere in correctly locating the problem is called &lt;I&gt;overshoot&lt;/I&gt;. Overshoot occurs when one thread causes another thread to crash, the problem thread then continues to execute for a short period of time before the processor halts all of the threads. The problem thread is now at location that is nowhere near where the bug occurred, making discovery of the faulty code difficult. To address overshoot, Jinx introduces a feature called &lt;I&gt;SmartStop&lt;/I&gt;, which holds the problem thread on the last line of code to communicate with the shared data, making discovery of the offending code much easier. In the example above, SmartStop would stop thread A in the stack_push() function - since this was the last point of communication before the crash. 
&lt;H3&gt;Getting starting with Jinx&lt;/H3&gt;
&lt;P&gt;To get started with Jinx, download and install the beta from &lt;A href="http://petravm.com/beta/jinx.msi" mce_href="http://petravm.com/beta/jinx.msi"&gt;http://petravm.com/beta/jinx.msi&lt;/A&gt; 
&lt;P&gt;Review the Jinx documentation and code samples (comes with samples in C and C#), and work through the short C tutorial in the documentation. 
&lt;P&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;: Jinx gives three debugging options, including the ability to debug the running operating system. The default mode is to debug the most recently registered program, which is the recommended setting for application debugging. &lt;BR&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=4 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/JinxVisualStudiopluginfordebuggingmultit_FC6A/clip_image001_2.png" mce_href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/JinxVisualStudiopluginfordebuggingmultit_FC6A/clip_image001_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image001 border=0 alt=clip_image001 src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/JinxVisualStudiopluginfordebuggingmultit_FC6A/clip_image001_thumb.png" width=244 height=68 mce_src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/JinxVisualStudiopluginfordebuggingmultit_FC6A/clip_image001_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10002871" width="1" height="1"&gt;</content><author><name>andrehal</name><uri>http://blogs.msdn.com/andrehal/ProfileUrlRedirect.ashx</uri></author><category term="debugger" scheme="http://blogs.msdn.com/b/debugger/archive/tags/debugger/" /><category term="Visual Studio" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Visual+Studio/" /><category term="multithreaded debugging" scheme="http://blogs.msdn.com/b/debugger/archive/tags/multithreaded+debugging/" /></entry><entry><title>Help!  My console windows won't go away</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/03/11/help-my-console-windows-won-t-go-away.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/03/11/help-my-console-windows-won-t-go-away.aspx</id><published>2010-03-11T21:27:00Z</published><updated>2010-03-11T21:27:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Many of you may be seeing an issue where your console windows won't close after you stop debugging.&amp;nbsp; The symptoms of this issue include:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The console application does not terminate as expected after you stop debugging&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The console windows can be moved, minimized and maximized, but cannot be closed&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The corresponding process does not appear in task manager&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;You are unable to properly shut down or restart Windows&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;We have recently seen this issue impacting many Visual Studio users.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The bug that is causing this issue is in csrss, which manages console windows for the Win32 subsystem (among many other things).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The bug was introduced by a recent security update to Windows, KB978037.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The Windows team is currently working on a fix for this, and we will post it here as soon as it is ready.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unfortunately, we don’t yet have any timelines that we can share at this time, but we will share any information we can as we get it. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;As we would like to like to make sure that Microsoft is able to test this fix as thoroughly as possible, please feel free to share your scenarios below (even if they do not include the use of Visual Studio).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Which version of Windows are you using (and what architecture)?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Besides stop debugging, can you provide details of other scenarios in which you are running into this same problem?&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9977169" width="1" height="1"&gt;</content><author><name>brads</name><uri>http://blogs.msdn.com/brads/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Introducing IntelliTrace</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/01/29/introducing-intellitrace.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/01/29/introducing-intellitrace.aspx</id><published>2010-01-29T17:10:00Z</published><updated>2010-01-29T17:10:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In the upcoming release of &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;&lt;FONT size=3 face=Calibri&gt;Visual Studio 2010&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; we’re going to be rolling out a very cool new feature called IntelliTrace to enhance and expand the Visual Studio debugger experience. In a nutshell, IntelliTrace is a &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/Flight_recorder"&gt;&lt;FONT size=3 face=Calibri&gt;black box&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; for your debugging experience. As your programs run IntelliTrace can be running as well, collecting lots of debugging data at various checkpoints and saving it off either to browse back to during debugging or to reopen on another machine to examine at a later time. This tool gives developers more control and information during their local debugging runs as well as providing an excellent way for testers to provide much better repro information along with their bugs, as they can use IntelliTrace to attach a log of debugging data leading up to a test failure that a developer can then open later for analysis.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;That is the gist of IntelliTrace, but for a more fully featured introduction I can recommend either &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/ianhu/archive/2009/05/13/historical-debugging-in-visual-studio-team-system-2010.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;my take&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;, &lt;/FONT&gt;&lt;A href="http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/16/how-does-vs2010-historical-debugging-work.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;John Robbins’ Blog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; or the &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd264915(VS.100).aspx"&gt;&lt;FONT size=3 face=Calibri&gt;MSDN documents&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; on the subject. Since IntelliTrace and debugging features go hand in hand (we’re all part of one big team here along with the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/profiler/"&gt;&lt;FONT size=3 face=Calibri&gt;Profiler&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;) I’ll keep up with some rollup posts on IntelliTrace from time to time here on the debugger blog. Below I’ve linked in some of my most recent post with general information about IntelliTrace, information on the IntelliTrace log files (.iTrace) and the integration of IntelliTrace with the new Microsoft Test Manager. If you have any feedback or questions on IntelliTrace please feel free to drop me a line at my blog and I’ll do my best to answer.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;[&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/ianhu/"&gt;&lt;FONT size=3 face=Calibri&gt;Ian Huff&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/ianhu/archive/2009/06/18/diagnostic-events-in-historical-debugging.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;IntelliTrace Events&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/ianhu/archive/2009/11/16/intellitrace-itrace-files.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;IntelliTrace iTrace Files&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/ianhu/archive/2010/01/26/intellitrace-and-microsoft-test-manager.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;IntelliTrace and Microsoft Test Manager&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/ianhu/archive/2009/05/13/historical-debugging-in-visual-studio-team-system-2010.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;IntelliTrace in Visual Studio 2010 Ultimate&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9955402" width="1" height="1"&gt;</content><author><name>ianhu</name><uri>http://blogs.msdn.com/ianhu/ProfileUrlRedirect.ashx</uri></author><category term="IntelliTrace" scheme="http://blogs.msdn.com/b/debugger/archive/tags/IntelliTrace/" /><category term="debugger" scheme="http://blogs.msdn.com/b/debugger/archive/tags/debugger/" /><category term="iTrace" scheme="http://blogs.msdn.com/b/debugger/archive/tags/iTrace/" /><category term="Ultimate" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Ultimate/" /><category term="2010" scheme="http://blogs.msdn.com/b/debugger/archive/tags/2010/" /><category term="Visual Studio" scheme="http://blogs.msdn.com/b/debugger/archive/tags/Visual+Studio/" /></entry><entry><title>Visual Studio 2010 Beta2 hang while debugging?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2010/01/06/visual-studio-2010-beta2-hang-while-debugging.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2010/01/06/visual-studio-2010-beta2-hang-while-debugging.aspx</id><published>2010-01-06T21:01:49Z</published><updated>2010-01-06T21:01:49Z</updated><content type="html">&lt;h3&gt;Causes&lt;/h3&gt; &lt;p&gt;We have received numerous reports of Visual Studio 2010 Beta2 hanging while debugging. The two most common causes identified for this were a bug in IntelliTrace and an Internet Explorer 8 bug when debugging web applications.  &lt;h3&gt;IntelliTrace Hang&lt;/h3&gt; &lt;p&gt;You can determine if your hang is caused by the IntelliTrace issue by disabling IntelliTrace. To do this:  &lt;ul&gt; &lt;li&gt;Navigate to “Tools -&amp;gt; Options -&amp;gt; IntelliTrace”  &lt;li&gt;Uncheck “Enable IntelliTrace”&lt;br&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudio2010Beta2hangwhiledebugging_B6D1/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudio2010Beta2hangwhiledebugging_B6D1/clip_image002_thumb.jpg" width="263" height="155"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Internet Explorer 8&lt;/h3&gt; &lt;p&gt;If you are debugging a web application with Internet Explorer 8, and occasionally IE hangs indefinitely after you begin debugging you may be encountering a known bug in IE8 that the IE servicing team is currently working on releasing a fix for (the fix will be available in a future IE patch). You can determine if the IE8 bug is affecting you if:  &lt;ul&gt; &lt;li&gt;Internet Explorer is frozen, but the Visual Studio UI is responsive. Visual Studio will either:  &lt;ul&gt; &lt;li&gt;Be back in “Design Mode” with a message in the Output window along the lines of “The program ‘[xxxx] Foo.exe’ has exited…”  &lt;li&gt;Be in “Run Mode” mode because it is attached to the wrong process (you can verify this if you are not using an express version of Visual Studio by opening the Processes window [Debug -&amp;gt; Windows –&amp;gt; Processes] and you will see that you are attached to a process that is not “iexplore.exe”). Click “Stop Debugging” (or “Detach Process” in the Processes Window) to detach Visual Studio from the incorrect process&lt;br&gt;&lt;a href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudio2010Beta2hangwhiledebugging_B6D1/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/VisualStudio2010Beta2hangwhiledebugging_B6D1/clip_image004_thumb.jpg" width="257" height="57"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;You will need to manually terminate Internet Explorer from the Windows Task Manager&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;IntelliTrace Hang Fixed&lt;/h3&gt; &lt;p&gt;We believe that we have identified the cause of the IntelliTrace hang and fixed it. So if disabling IntelliTrace solves your problem and you are interested in evaluating a build with the fix before the public &lt;a href="http://blogs.msdn.com/somasegar/archive/2009/12/17/visual-studio-2010-and-net-framework-4-beta-period-extended.aspx"&gt;Release Candidate&lt;/a&gt; we’d love to hear from you. Note: In order to get this build you will be required to sign a Microsoft Non-Disclosure Agreement (NDA). To participate please contact me (Andrew Hall) at &lt;a href="mailto:andrehal@microsoft.com"&gt;andrehal@microsoft.com&lt;/a&gt;  &lt;p&gt;If disabling IntelliTrace does not solve your problem, we’d like to know about that too so we can determine the cause of your hang. Please contact me at &lt;a href="mailto:andrehal@microsoft.com"&gt;andrehal@microsoft.com&lt;/a&gt; as well and I will provide instructions to help us diagnose your issue.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9944804" width="1" height="1"&gt;</content><author><name>andrehal</name><uri>http://blogs.msdn.com/andrehal/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>What is a dump, and how do I create one?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2009/12/30/what-is-a-dump-and-how-do-i-create-one.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2009/12/30/what-is-a-dump-and-how-do-i-create-one.aspx</id><published>2009-12-30T21:14:00Z</published><updated>2009-12-30T21:14:00Z</updated><content type="html">&lt;H3&gt;What is a dump and how is it useful?&lt;/H3&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;P&gt;A dump is a snapshot of an application at the point in time the dump is taken. It shows what was executing, what modules are loaded, and if saved with heap contains a snapshot of what was in the application’s memory at that point in time making a dump with heap potentially more useful for diagnosing an issue (dumps with heap do however have the disadvantage of being much larger files making them harder to upload/email). Dumps are primarily used for debugging issues that occur only machines the developer does not have access to (e.g. a crash occurs when running on a customer’s computer, but does not occur on the developer’s computer). Dumps are not only useful for crashes, another common example is capturing a dump of an application that is hung. 
&lt;H3&gt;How to create a dump&lt;/H3&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;P&gt;There are many tools for creating dumps, the easiest method is using the Task Manager on Windows Vista and up (this has significant drawbacks in many cases however as I will explain below), followed by &lt;A href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx"&gt;Windows Systinternals ProcDump&lt;/A&gt; (free from Microsoft) but since this is a Visual Studio Debugger blog, I will also show how to use Visual Studio to collect a dump. 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;P&gt;A dump is ultimately created by Windows regardless of the tool used to create it, so “a dump is a dump” regardless of what tool is used (there is one exception to this when using Task Manger on a 64bit operating system to create a dump of a 32bit process--explained in the “Creating a dump using Task Manager” section). 
&lt;P&gt;Since ProcDump is the most configurable tool for collecting dumps, and is relatively easy to obtain and use, I will explain how to collect dumps with ProcDump first. 
&lt;H4&gt;Creating a dump using ProcDump&lt;/H4&gt;
&lt;P&gt;ProcDump is a command line tool for collecting dumps that is freely available from Microsoft.&amp;nbsp; Applications can either be launched with ProcDump (very useful if the application is crashing on startup), or attached to with ProcDump.&amp;nbsp; Additionally ProcDump can immediately collect a dump in the case of attaching to a process, or be configured to collect a dump when a variety of conditions are met (the application crashes, hangs, uses too much CPU/memory, etc).&amp;nbsp; The full description and functionality are documented on the &lt;A href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx"&gt;Systinternals ProcDump page&lt;/A&gt;&lt;/P&gt;
&lt;H5&gt;Collecting a dump with ProcDump&lt;/H5&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;OL&gt;
&lt;LI&gt;Download procdump.zip from &lt;A href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx"&gt;http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_EABF/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_EABF/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_EABF/image_thumb.png" width=316 height=270 mce_src="http://blogs.msdn.com/blogfiles/debugger/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_EABF/image_thumb.png"&gt;&lt;/A&gt; 
&lt;LI&gt;Unzip procdump.zip 
&lt;LI&gt;From a command prompt, navigate to the folder where you unzipped procdump 
&lt;LI&gt;Launch procdump.exe with the appropriate arguments for your scenario.&amp;nbsp; Below I list a few of the most common arguments, however a full list is available on the &lt;A href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx"&gt;ProcDump page&lt;/A&gt;):&lt;BR&gt;
&lt;OL&gt;&lt;STRONG&gt;-e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;Write a dump when the process encounters an unhandled exception. &lt;BR&gt;&lt;STRONG&gt;-h&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write dump if process has a hung window (does not respond to window messages for at least 5 seconds). &lt;BR&gt;&lt;STRONG&gt;-ma&lt;/STRONG&gt;&amp;nbsp; Write a dump file with all process memory. The default dump format includes thread and handle information. &lt;BR&gt;&lt;STRONG&gt;-x&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Launch the specified application &lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;H5&gt;Examples of collecting a dump with ProcDump&lt;/H5&gt;
&lt;P&gt;&lt;STRONG&gt;Launch an application with ProcDump and collect a dump with heap when the process crashes:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;C:\&amp;gt;procdump –e –ma –x “C:\My Applications\CrashingApp.exe” crash.dmp&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Attach to an application that is hung and collect a dump with heap immediately:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;C:\&amp;gt;procdump –ma HangingApplication.exe hang.dmp&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Launch an application with ProcDump and collect a dump with heap when process either crashes or hangs&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;C:\procdump –e –h –ma –x “C:\My Applications\Application1.exe”&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Example of attaching to Visual Studio using ProcDump to collect a dump on an unhandled exception&lt;/EM&gt;&lt;BR&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_D202/image_2.png"&gt;&lt;IMG title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_D202/image_thumb.png" width=522 height=215&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;Creating a dump using Visual Studio&lt;/H4&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;OL&gt;
&lt;LI&gt;Open Visual Studio 
&lt;LI&gt;Select “Tools-&amp;gt;Attach to Process”&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image001_2.png" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image001_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image001 border=0 alt=clip_image001 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image001_thumb.png" width=244 height=65 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image001_thumb.png"&gt;&lt;/A&gt; 
&lt;LI&gt;Click the “Select…” button for “Attach to:”&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image003_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image003_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image003 border=0 alt=clip_image003 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image003_thumb.jpg" width=244 height=167 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image003_thumb.jpg"&gt;&lt;/A&gt; 
&lt;LI&gt;Select “Debug these code types:” 
&lt;LI&gt;Select “Native” (&lt;I&gt;Note: Native is used because in versions of Visual Studio prior to 2010 the option to save a dump is not available with the managed engine. Since the dump is created by windows, it does not matter which debug engine is attached to the application&lt;/I&gt;) 
&lt;LI&gt;Click OK on the “Select Code Type” dialogue&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image005_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image005_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image005 border=0 alt=clip_image005 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image005_thumb.jpg" width=244 height=131 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image005_thumb.jpg"&gt;&lt;/A&gt; 
&lt;LI&gt;Click “Attach” 
&lt;LI&gt;Depending on if you want to create: 
&lt;UL&gt;
&lt;LI&gt;A crash dump: 
&lt;UL&gt;
&lt;LI&gt;Reproduce the crash in the application that you are attached to. 
&lt;LI&gt;The instance of Visual Studio attached to the application will display a dialogue asking if you would like to “Break” or “Continue” 
&lt;LI&gt;Click “Break”&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image007_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image007_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image007 border=0 alt=clip_image007 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image007_thumb.jpg" width=244 height=68 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image007_thumb.jpg"&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;A non-crash dump (e.g. a hung process) 
&lt;UL&gt;
&lt;LI&gt;Click “Break All” (click the “pause” icon, or select “Debug -&amp;gt; Break All”)&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image009_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image009_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image009 border=0 alt=clip_image009 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image009_thumb.jpg" width=244 height=88 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image009_thumb.jpg"&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;On the Debug menu, select “Save Dump As…”&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image011_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image011_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image011 border=0 alt=clip_image011 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image011_thumb.jpg" width=168 height=244 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image011_thumb.jpg"&gt;&lt;/A&gt; 
&lt;LI&gt;Choose where to save the dump file, and whether you want a dump “with heap” or “without heap” (In Visual Studio 2008 the default is “without heap”, in Visual Studio 2010 the default is “with heap”)&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image013_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image013_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image013 border=0 alt=clip_image013 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image013_thumb.jpg" width=244 height=184 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image013_thumb.jpg"&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;H4&gt;Creating a dump using Task Manager&lt;/H4&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;P&gt;Beginning in Windows Vista, the Windows Task Manager includes support for creating dump files. This can be very useful, and is slightly quicker and less complicated than creating a dump using ProcDump or Visual Studio; there are however a few things to note when using Task Manager to create dumps. 
&lt;UL&gt;
&lt;LI&gt;Task Manager always creates a dump with heap 
&lt;LI&gt;If the application has crashed, Task Manager does not include the exception information in the dump 
&lt;LI&gt;On a 64bit operating system, dumps taken with Task Manager of 32bit processes cannot be debugged with Visual Studio because Task Manager saves the dump as a 64bit dump of the 32bit process. In the case of a 64bit OS and a 32bit process dumps should be taken using ProcDump or Visual Studio as described above (for a 64bit dump of a 32bit process &lt;A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx" mce_href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;windbg&lt;/A&gt; must be used)&lt;/LI&gt;&lt;/UL&gt;
&lt;H5&gt;To create a dump using Task Manager:&lt;/H5&gt;
&lt;OL&gt;
&lt;LI&gt;Open the “Windows Task Manager” 
&lt;LI&gt;Select the “Processes” tab 
&lt;LI&gt;Right click the process you wish to take a dump of 
&lt;LI&gt;Select “Create Dump File”&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image015_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image015_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image015 border=0 alt=clip_image015 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image015_thumb.jpg" width=244 height=205 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image015_thumb.jpg"&gt;&lt;/A&gt; 
&lt;LI&gt;A dialogue will appear with the location of the saved dump (The file location can be selected and then copied and pasted).&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image016_2.png" mce_href="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image016_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image016 border=0 alt=clip_image016 src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image016_thumb.png" width=244 height=118 mce_src="http://blogs.msdn.com/blogfiles/andrehal/WindowsLiveWriter/WhatisadumpandhowdoIcreateone_B71E/clip_image016_thumb.png"&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;H3&gt;Frequently Asked Questions Regarding Dumps:&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Q:&lt;/STRONG&gt; Can Visual Studio debug dumps of applications written in managed code?&lt;BR&gt;&lt;STRONG&gt;A:&lt;/STRONG&gt; Yes (kind of), support was added to Visual Studio 2010 to debug dumps of managed applications using CLR version 4, Visual Studio cannot debug dumps of managed applications running on versions of the CLR prior to v4 
&lt;P&gt;&lt;STRONG&gt;Q:&lt;/STRONG&gt; Can Visual Studio debug dumps of 64bit processes?&lt;BR&gt;&lt;STRONG&gt;A:&lt;/STRONG&gt; Yes, Visual Studio can debug dumps of both 64 and 32 bit processes 
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;P&gt;&lt;STRONG&gt;Q:&lt;/STRONG&gt; Do I have to debug a 64bit dump on a 64bit operating system?&lt;BR&gt;&lt;STRONG&gt;A:&lt;/STRONG&gt; Yes, you must be running on a 64bit operating system to debug a 64bit dump &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9942415" width="1" height="1"&gt;</content><author><name>andrehal</name><uri>http://blogs.msdn.com/andrehal/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Remote debugging on Win7 error: Unable to start debugging ...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/debugger/archive/2009/11/04/remote-debugging-on-win7-error-unable-to-start-debugging.aspx" /><id>http://blogs.msdn.com/b/debugger/archive/2009/11/04/remote-debugging-on-win7-error-unable-to-start-debugging.aspx</id><published>2009-11-04T21:05:00Z</published><updated>2009-11-04T21:05:00Z</updated><content type="html">&lt;P&gt;If you are running msvsmon on a Win7 machine and are seeing the following error message when attempting to remote debug:&lt;/P&gt;
&lt;P dir=ltr&gt;---------------------------&lt;BR&gt;Microsoft Visual Studio&lt;BR&gt;---------------------------&lt;BR&gt;Error while trying to run project: Unable to start debugging.&lt;BR&gt;This operation returned because the timeout period expired.&lt;BR&gt;---------------------------&lt;BR&gt;OK&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P dir=ltr&gt;The issue is that the firewall is not setup properly on the Win7 machine for remote debugging. When msvsmon first launches, it will&amp;nbsp;prompt the user to&amp;nbsp;configure the firewall. But because of&amp;nbsp;the firewall security&amp;nbsp;API changes&amp;nbsp;since Vista, the prompt may&amp;nbsp;not come up.&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr&gt;So if you are seeing the above error message, use this workaround:&lt;/P&gt;
&lt;P dir=ltr&gt;Control Panel-&amp;gt;System and Security-&amp;gt;Windows Firewall: Change notification settings -&amp;gt; enable Notify me when Windows Firewall blocks a new program -&amp;gt;Ok&lt;/P&gt;
&lt;P dir=ltr&gt;Try remote debugging again, this time msvsmon should pop up a windows security alert dialog box that prompt you to&amp;nbsp;grant access permission to msvsmon.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917564" width="1" height="1"&gt;</content><author><name>samchan</name><uri>http://blogs.msdn.com/samchan/ProfileUrlRedirect.ashx</uri></author></entry></feed>