Debugging Tools Survival Guide

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.

 

Tool Description Debugging Scenario
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.

WinDBG Extension: PSSCore2

WinDBG Extension: PSSCore4

Psscor2/4 is a Windows Debugger extension used to debug .NET Framework (versions 2-3.5/4) applications. 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 any user-mode process. The tool includes additional debugging scripts focused on Internet Information Services (IIS) applications, web data access components, COM+ and related Microsoft technologies.

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 HTTP(S) traffic between your computer and the 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

WCF Service

Trace Viewer

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.