Having a job where you need to deal with memory dumps for customer issues, it’s always good to have some cool tools to ease your job. When you start analysing same kind of issues, this thought arises ‘why not automate’ the analysis.
Two years ago I started working on Debug Analyzer.NET since I was unable to find a debug automation tool suitable as per my requirements.
Unlike a typical developer I put a lot of effort thinking how the experience should be and how it could cater to everyone with different levels of Debugging knowledge.
It boiled down to usefulness and ease of writing analysis without learning an entirely new way of programming by using the worlds Best developer framework ".NET"
Debug Analyzer.NET is born !!!
(After 2 years of development in hiding; yea working during weekend, vacation and whatever time I could squeeze in)
What is Debug Analyzer.NET?
Debug Analyzer.NET is a debugging automation tool to analyze memory dumps using analysis plug-ins written in .NET!
It has several other features to make your debugging life easier and pleasant. It also takes advantage of Wisdom of Crowd to enhance the analysis capabilities.
In other words, if you have used windbg + sos/psscor and ever wondered about automating debug analysis, Debug Analyzer.NET is for you!
- Analysis Reporting
Write .NET based Plug-in to run analysis against a well defined Object Model to generate html reports
- Instant Analyzer
Write your analysis code in Code Editor and hit F5 to compile and execute your analysis so that you can see the results instantly.
- Interactive Debugging
Ability to easily write Analysis commands just like Windbg but in .NET and do more...
Write Plug-in to Visualize the data into graphs, datagrids etc…
Plug-in UI which provides a way to write your own utility UX for other popular tools.
Please see the detailed list of features on the right including screenshots.
- Plug Framework
Easy to build and use Plug-in model for writing analysis. For simplicity the plug-ins written for this Framework are called ‘Plugs’.
- Object Model
Easy to use Object Model which abstracts away complexities, extensible and which is also loosely coupled to tweak as and when required, against which the Plugs are written.
- Reporting Framework
Reporting framework which uses XML/XSL so that look and feel of the reports can be changed without touching the Plugs.
- Data Provider Model
Data Provider Model and framework for Data Extensibility and to make it easy to switch Data soure by switching Data Access Component through config file
- Learn Mode
Where the analysis results provides more related resources which would explain how not to get into the same issue again.
Debug Analyzer.NET targets anyone who uses .NET Framework for their application development.
Normal developers can use pre-written analysis to run against their application memory dumps, to analyze issues.
Debugging Experts can enhance Debug Analyzer.NET by adding more Analysis using the Plug Framework
Why .NET 4.0 ?
Initially I was targeting .NET Framework runtime 2.0 but then realized that .NET Framework 4.0 would make a more productive choice.
I love Lambda expressions, LINQ, power of Reflection and also Parallelism. And .NET 4.0 also brings excellent Charting controls which would enable creating rich Visualization.
Note: My development machine (laptop) is configured with Microsoft Public Symbol Server to make sure whatever works for me works for others as well.