Viade™ Afterburner™ is a freeware Microsoft® Visual Studio® add-In designed to add some “missing” functionality to a few of Microsoft .NET Framework’s facilities. There are numerous development tools, utilities, libraries and code snippets out there vying for a programmer’s attention. Why would you want to look at yet another one? Unlike many, this one requires Minimal investment of your time and effort in order to benefit from it. There is no need to learn a new API or make any changes to your existing code. The only requirements are to install the add-in and to check off what features are to be applied to the selected projects in your solution no matter what .NET language is used.
Currently supported features include DeadLock Detection, Deadlock Prediction and Dispose Monitoring.
When a deadlock is detected the Deadlock Detection feature alerts the test application by throwing an exception describing the complete cycle of threads and monitor objects participating in the deadlock with all the relevant call stacks. This information should be sufficient to understand the nature of the encountered deadlock in order to eliminate it.
The Deadlock Prediction is a dynamic analysis tool designed to verify whether the commonly used strategy to avoid deadlocks called lock leveling (lock hierarchies, lock ordering, lock ranking) is being properly implemented by the test application. The tool tracks exclusive access acquisitions made by the threads in the running application and generates a report of the threads that performed these acquisitions in mismatching orders.
IDisposable interface only provides the mechanism for manual object lifetime management but not its enforcement. This is where the Dispose Monitoring feature comes in. It is designed to report all instances of classes implementing IDisposable() interface whose Dispose() method was not called before the instance was garbage collected.