Automate Tedious Debugging Tasks Using Debug Analyzer.NET
As part of our daily jobs as software developers, we spend quite a bit of time debugging various problems in our software. Certain types of problems are more common than others, and in those cases we end up duplicating our debugging efforts across different but similar types of bugs. For example, debugging memory pressure problems in .NET applications typically involve a series of !DumpHeap commands to hone in on a problematic type instance. In fact, the series of commands that are executed can be so similar in nature that we sit back and think about what we do bestmainly, how to automate the process.
Several tools exist that allow for some level of automation. For example, the Debug Diagnostics tool (also knows as DebugDiag) offers developers a way to enhance its functionality by writing VB scripts against a debugger object model. Another option is to write debugger automation using the built-in debugger scripting language. Unfortunately, while both options allow for automation, it requires that we learn a new technique, and in the worst case a new language to get our job done. Debug Analyzer.NET recognized this pain point and provides an excellent framework upon which we can automate debugging tasks while leveraging our already existing skill set of developing in .NET (using C# or any other .NET language). Fundamentally, Debug Analyzer.NET provides a .NET based object model around many aspects of the debugging experience as well as a tool that allows us to do automatic analysis on crash dump files.
Debug Analyzer.NET can be downloaded free of charge from http://www.debuganalyzer.net.
Simply click on the Download link and choose the correct architecture to start the install process. Please note that it is imperative that you match the architecture to the crash dump file on which you will be running the tool. For example, if I need to run Debug Analyzer.NET on a 32-bit crash dump file on a 64-bit machine, I would need to use the 32-bit version of Debug Analyzer.NET. Also important to note that the supported CLR versions are:
- CLR 2.0
- CLR 3.x
Support for CLR 4.0 and Silverlight is planned in the near future.
The installation process is simply just a ZIP file that you extract to a location of choice. Once the extraction is complete, you can run Debug Analyzer.NET by simply executing DebugAnalyzer.exe.