CLRMD: .NET Crash Dump and Live Process Inspection

Lee Culver, a software developer on the .NET Runtime team, has shipped an awesome managed code library for anyone interested in analysing memory dumps and the internals of running .NET applications.  Known as CLRMD, this library allows you to write code that does all the kinds of stuff you do with the SOS, PSSCOR2, PSSCOR4 …


Tips for successful .NET Debugging with WinDBG

Here are my tips for pain free .NET debugging with WinDBG 1) Always use a 32-bit debugger for a 32-bit process and a 64-bit debugger for a 64-bit process, both to generate the dump and to analyse it. Use usermode dumps only (managed debugger extensions are not expected to work with kernel mode) and ensure…


Long paths and .NET

I was helping a colleague recently on an issue to do with long file system paths and the challenges and limitations of handling them in .NET. I knew there were issues but could not recall all the details. Anyway, I just came across a wrapper class on Codeplex to assist in handling long paths. The…


WinForms to WPF Quick reference guide

I don’t do a lot of WinForms and WPF work but I came across this very handy article with some associated posters to compare WinForms and WPF both in .NET 3.5 / Visual Studio 2008 and .NET 4.0 and Visual Studio 2010 varieties. And this is the direct link to the wallchart/poster. HTH Doug


Finding the .NET version in a debug session

An interesting little question came up on one of our internal discussion groups today. “How can I find in a debug session the version of the .NET runtime being used in the debuggee?” [in an automated/scripted fashion and without using debugger extensions or symbols] Here is what I came up with: 0:029> !for_each_module .if (…


Windows® API Code Pack for Microsoft® .NET Framework

To help .NET developers target Window 7 features we’ve released the Windows® API Code Pack for Microsoft® .NET Framework. Looks like there is a lot of stuff in there! HTH Doug


Some ASP.NET, IIS and CLR fixes

My job involves a wide variety of stuff, from investigation, debugging, diagnosing and solving of specific customer problems through passing on product feedback and bug reports to product groups and mentoring other support engineers on their cases to looking at how we can make our support processes and products better. Many of the customer problems…


Summary of ASP.NET Versions, Updates and Hotfixes

[Note: November 2010 Some recent fixes added] [Note: September 2009 I am in the process of trying to bring this list up to date. It may not be complete] There is nothing worse than wrestling with a problem for ages only to discover later that there is already a fix for it. I therefore felt…


“Failed to load data access DLL, 0x80004005” – OR – What is mscordacwks.dll?

Ever seen this error in a WinDBG/CDB debug session? Failed to load data access DLL, 0x80004005 Verify that 1) you have a recent build of the debugger (6.2.14 or newer)             2) the file mscordacwks.dll that matches your version of mscorwks.dll is                 in the version directory             3) or, if you are debugging a…


.NET performance counters missing when using WMI to access them

Windows Management Instrumentation (WMI) among other things exposes to WMI clients performance counters that are present on a system. This is useful because it makes performance counter data accessible to script based clients. It also offers a better way for remote clients to access performance counter data because (among other things) the “traditional” method of…