It seems like the theme of this week is debugging.  Not by my own choice really, I just kept running into really interesting articles on the topic.

 

Blog: Jake Lauzier’s  Cross Domain Remote Debugging

My coworker Jake Opines has put together a great blog on remote debugging across domains in .NET.  I was shocked at how simple it is to do and also that everything you need to do it is included with Visual Studio 2008.  It’s a post worth checking out for any .NET developer.

 

Blog: Amol Ravande’s Debugging OutOfMemoryExceptions in managed code using Windbg

In this post Amol walks you through his experience using Windbg to find a memory leak in his application.  Normally, I would use a profiler to figure out what was going on in a case like this.  However, it is interesting to see how one could debug memory issues without the aid of expensive third party tools.

 

Blog: Mark Heath’s Debugging with Tracepoints

Tracepoints are much like breakpoints except that they print information instead of halting program execution.  They are simple to use, much like breakpoints.  Easy access to thread, process, function and instruction information are included.  They even provide macro functionality, although I have not yet had a chance to explore it. 

Now, I can’t help but wonder if it’s possible to easily save sets of Tracepoints for debugging different types of issues in a project so they could be shared in source control easily.  What would be even more amazing is if Tracepoints could be used when running tests in NUnit or MSTest.  In the case where a test fails, it could be run again with a predefined set of Tracepoints.  When you go to fix the problem a big pile of useful output would be waiting for you.  What about giving a client that is having an issue in your release build a set of Tracepoints and being able to see exactly what is happening?  I doubt all of this is possible but it’s worth looking into.

 

Blog: Billy Gray’s Ranting Considered Useful

Despite this being a meta blog (a blog about blogging), I think the message inside is really important.  The act of ranting allows a person to go out on a limb and express ideas without the normal idea filters we would have in use.  The majority is not even usually correct and someone has to be there to point it out.  Taking a contrarian view and running with it is a supremely creative process in that once you leave the bounds of the community’s hierarchy your mind is free to be creative without the boundaries laid down by the previous work of others.  Also, I personally enjoy both reading and writing a good rant.