Home / ASP.NET Weblogs

Latest Microsoft Blogs

Browse by Tags

Related Posts

  • Debug Diag 1.2 (Beta)

    Are you looking for some good stuff to put in your family’s Christmas stockings this year? Maybe a new phone, a controller for your gaming console, why not a brand new debugging tool:) Jokes aside, I get peppered with questions about Debug Diag and if there is a new version coming that will support Windows 7 / Windows 2008 and luckily some of my EE colleagues have been and are still working hard at making this happen. While it is not available for public download yet at the MS download site, Beta 1 of Debug Diag has been released and is ready for use.  The main new stuff in Beta 1 is that it now supports the aforementioned Windows 7 and 2008, and if you need it right now, you can send an email to dbgdiag (at) microsoft.com, or if you have...


  • Capturing memory dumps for 32-bit processes on an x64 machine

    This is an issue that I often get questions around and we often have cases where we have to re-capture memory dumps because the memory dumps were captured the “wrong” way. The short story is: If you are executing a 32-bit process on a 64-bit machine, (which is the default case for IIS on x64 machines for example) you need to capture the dump with a tool that allows you to create 32-bit dumps. How do you know if your process is 32-bit? If you are on a 64-bit machine, you can check task manager to see what architecture your process is using. Processes with *32 are 32-bit and the rest are 64-bit so in the example above we can see that for example w3wp.exe is executing 32-bit code. Why is it important to capture them with the right tools...


  • Help! !clrstack is not showing any method names

    From time to time I get questions about missing method names in the sos !clrstack output, like this: 0:019> !clrstack OS Thread Id: 0x5d0 (19) ESP EIP 0f31f340 7c80bef7 [HelperMethodFrame_1OBJ: 0f31f340] 0f31f398 1449167a 0f31f3c4 144915e6 0f31f3f4 10d81b48 0f31f4b4 793e25cf 0f31f4bc 79366b3d 0f31f4d4 793e2734 0f31f4e8 793e26ac 0f31f678 79e7c0e3 [GCFrame: 0f31f678] Jonathan Dickinson from SourceCode, just emailed me and told me that he had written an article about this and how to resolve it.  You can read the whole article here: http://jonathan.dickinsons.co.za/blog/2010/08/windbg-stack-fix/ Thanks Jonathan for writing that article. Solution: As mentioned in the article there are a couple of things you need to get rid of the problem...


  • Getting full user mode dumps automatically when your process crashes

    I recently got a question about if it is possible to generate full user mode dumps automatically every time the process crashes (without having debug diag or adplus installed and monitoring your system). This would be useful for example if you are setting up a site, and you want to make sure you get dumps if it ever crashes so that you don’t have to repro the issue at that point, just to get data. It turns out that starting with Windows Server 2008 and Vista + SP1, Windows Error Reporting (WER) will let you do just that. It even worked on my Win 7 machine. http://msdn.microsoft.com/en-us/library/bb787181(VS.85).aspx The documentation here says that “Applications that do their own custom crash reporting, including .NET applications...


  • New debugger extension for .NET (PSSCOR2)

    Tom just blogged about a new debugger extension called PSSCor2, which is a superset to the SOS.dll extension that ships with the .net framework. PSSCor2.dll has been around for quite some time at Microsoft, and pretty much everyone debugging .net code with windbg within Microsoft is using this since it contains all the goodness of sos.dll plus a lot of special methods for asp.net and other technologies running on top of the .net framework.  The news now is that after a lot of hard work by Tom and Jon Langdon in the CLR team, it is finally released publicly, YAY!!! You can download it here and Tom promised to write some posts about the new commands so you might want to follow that… I will likely do the same later on as well… Just to name...


  • Tool for generating DGML graphs showing why your object can’t be collected (VisualGCRoot)

    Visual Studio.NET 2010 has a new feature that allows you to create nice directed graphs with a markup language called DGML (Directed Graph Markup Language).  Visualizing object graphs with DGML Chris Lovett wrote a tool that takes GCRoot output and transforms it to a DGML document so that you can see the roots of an object in a more visual way, and finally Mohamed Mahmoud went one step further and made a debugger extension that does this for you directly.    The debugger extension is called VGCRoot and you can get the extension, and some instructions and demos for it here . The VGCRoot extensions If you are looking at a memory dump in windbg and try to figure out why your object is still sticking around, collection after...


  • WOHOO!!!, Debug Diag 64bit is finally released

    For all of you who have been asking me if there is a 64bit version of Debug Diag (used to debug 64 bit processes), I am happy to say that yes, Debug Diag 1.1 64bit is now released. You can download it here: http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en#filelist And an updated whitepaper talking about how to use it is available here: http://www.microsoft.com/downloads/details.aspx?familyid=4A2FBD0D-0635-440C-A08B-ED81BDBB5960&displaylang=en Neither this version (nor the 32bit one) officially support debugging/analyzing on Vista/2008/Win7 because of some known compatibility issues (being looked at for future versions), however for a lot of tasks it works quite well on those...


  • First step in troubleshooting complex issues: Define and scope your issue properly

    Is it a plane, is it a bird, is it a UFO? Before you can delve into any kind of troubleshooting of an issue you need to thoroughly define it.  If you don’t you’ll probably end up spending a lot of time randomly gathering and looking at data that is probably not even relevant to the issue at hand.  More importantly, how do you even know that your problem is fixed if you don’t have a good definition of the problem? This might sound like common sense, but having worked with troubleshooting the better part of the last 10 years I can tell you that it is extremely common that people start looking at data before really understanding the problem.  More often than not this is because people are stressed and want to fix the problem fast...


  • First look at debugging .NET 4.0 dumps in Visual Studio 2010

    I know that for a lot of you this is a bit far into the future, but I thought it would be nice to run through a few of my lab scenarios to show off some of the new features in Visual Studio 2010.  I am sure that I will miss a bunch of cool features here as this post is just based on my first experience with this, but I will likely post more about these features as we get closer to RTM.  As we are only in Beta, anything and everything may change before RTM and the below is just based on my own impressions so there may be other better ways of doing things. Why debug dumps with Visual Studio .NET I love WinDbg and will probably continue using it for many years to come since it is a very simple and clean and powerful debugger.  I...


  • .NET Exceptions: Quick WinDbg/SOS tip on how to dump all the .NET exceptions on the heap

    Since a .net exception is a .NET object like any other, it gets stored on the GC heap when you (or some code you call) calls new XXException().  This means that if you have a memory dump of a process you can dump out all the recent exceptions that have occurred, or rather all exceptions that have not yet been garbage collected, which will give you a good feel for what exceptions occurred recently.  Doing this is pretty easy if you have sos loaded (.loadby sos mscorwks) in windbg 0:015> !dumpheap -type Exception ------------------------------ Heap 0 Address       MT     Size 02ea6b0c 79330a80       72     02ea75f0 7930eab4      ...


Page 1 of 3 (29 items) 1 2 3 Next >