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. |
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 |
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. |
Comments
Anonymous
September 23, 2011
It looks like your links are messed up, can you get them fixed up?Anonymous
September 23, 2011
Access deniedAnonymous
September 26, 2011
Sorry for the incorrect links ... I got them fixed.Anonymous
September 28, 2011
Don't forget pro dump. I would replace adplua with that since it is much more versatile.Anonymous
September 28, 2011
Never heard of pro dump before. Can you sahre a link?Anonymous
September 29, 2011
I think he means ProcDump from SysinternalsAnonymous
October 03, 2011
Could it be useful spending some words about configuring the debugging symbols?Anonymous
October 03, 2011
I have symbols and sources configuration on my list... Are you interested in specific tools to be configured or more a general explanation?