When it comes to trouble shooting the first and most important tool you need is your brain.
Besides that there are couple of other tools that help you collecting & analyzing data.
In this post I'm going to name and list a view of them that I discovered over the past years (and in my first month at Microsoft) and shortly describe what they do and what target scenario they are most useful in.
|Visual Studio||Feature-rich Dev. IDE||Conveniently debug applications where source code is available.|
|Debugging Tools for Windows||Visual but text command line oriented debugging tool for applications, drivers and services.||Ideal for debugging applications where no source code but symbols are available. You can attach to processes and process crash dumps both.|
|Psscor2/4 is a Windows Debugger extension used to debug .NET Framework (versions
|Most help full when analyzing crash dumps of managed and mixed code applications and when looking for memory leaks and large object heap fragmentation issues.|
|ADPlus||ADPlus can create a detailed dump file in a variety of scenarios||
Processes that stop responding (that is, hang).
Processes that have 100 % CPU utilization on a single processor computer, 50 % utilization on a dual processor computer, 25 % utilization on a quad processor computer, and so on.
Processes that fail (that is, crash) or shut down unexpectedly.
|DebugDiag||The Debug Diagnostic Tool (DebugDiag) is designed to assist in troubleshooting||
issues such as hangs, slow performance, memory leaks or fragmentation, and crashes in
|Process Explorer||Process Explorer shows you information about which handles and DLLs processes have opened or loaded.||Replacement for Task manager showing in-depth diagnostic information about process, sub-processes, process parameters such as handles, DLLs loaded, threads incl. individual cpu usage, call stacks (if symbol server is configured)|
|Process Monitor||An advanced monitoring tool for Windows that shows real-time file system, Registry and process/thread activity||If you have no code, no symbols and you want to understand what an application does to your system, procmon is the tool to go. It allows capturing, saving and reloading logs. With the highly configurable filtering options you can drill down to what you are interested in from the overwhelming verbosity of such logs.|
|Network Monitor||Tool to allow capturing and protocol analysis of network traffic.||Network Monitor 3.4 is a protocol analyzer. It allows you to capture network
traffic, view and analyze it.
|Fiddler||Fiddler is a Web Debugger||It logs all
Internet. Fiddler allows you to inspect traffic, set breakpoints, and "fiddle"
with incoming or outgoing data. Fiddler includes a powerful event-based
scripting subsystem, and can be extended using any .NET language
|helps you analyze diagnostic traces that are generated by WCF||Service Trace Viewer provides a way to easily merge, view, and filter trace
messages in the log so that you can diagnose, repair, and verify WCF service
issues. It supports list-based & time-lined Message & Activity Logging. Ideally to analyze deployed apps in production (restart required). You can use it to find suppressed serialization errors due to contract mismatches and so on.