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 …


New CLR and .NET Performance tool

Vance Morrison, CLR performance architect here at Microsoft, has released a new tool for conducting performance investigations on .NET applications. It is called PerfView and you can read more about it on his post here. You can download it here. It is designed to have as low an overhead on the application being investigated although…


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…


Version history of the CLR 4.0

[ update 18/6/2012 LDR.569 added ] [ update 16/4/2012 – changed the format to make LDR/GDR branch versioning clearer at the suggestion of Vivek Mishra (thanks!) ; added .468 and  .476 ] [ update 15/2/2013 – added MS12-074, 2733944, 2756195 ] [ update 17/4/2013 – added 1001, 2001, 2004 and 2008 ] Following on from…


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 (…


Help! Where’s my help?

Once you’ve installed Visual Studio 2010 Beta 1 and read the readme (you do read readmes, now, don’t you?) you find that all the help for this beta release is online. No offline documentation is included. That’s understandable and all very well but what if you want to browse it while you are not online,…


Debugging and Profiling API enhancements in CLR 4.0

There’s a very interesting interview been published on Channel 9 about the new and changed profiling and debugging APIs in CLR 4.0. While I’m mentioning CLR 4.0, here are a bunch of links related to Visual Studio 2010 and .NET Framework 4.0: Downloads Microsoft .NET Framework 4 Beta 1 Microsoft .NET Framework 4 Client Profile…