User:Vikaspachisia/sandbox

Debugging Tools and Aid for Microsoft Windows Platform
One can easily find debugging tools for windows on the internet which has a collection of tools and documentation to allow a developer to debug and analyze various types of issues. But there are other tools developed or supported (may not be official) by Microsoft which has been working well in practice and used heavily by many IT professionals and developers. Some of these tools are available as part of visual studio IDE installation or may be obsolete according to Microsoft but usable and is being used by many legacy application maintainers and will continue to be helpful for the next decade. Below I am listing some of the most commonly used tools on Microsoft Windows platform that will help you identify the right tool for the right purpose. The list is not exhaustive and can be amended as and when a commonly used new tool is identified.

Debugging/Developer Support Tools

 * Windbg: Part of debugging tools for windows. It is primarily used for dump analysis such as crash dump, hang dump etc.
 * ADPlus: Part of debugging tools for windows. It is primarily used to collect dumps in un-attended mode.
 * Visual studio debugger: The main debugger on windows platform. It is integrated seamlessly into the visual studio IDE.
 * Remote Debugger: Tool that runs on remote machine and provide connections for debugging from local machine in a seamless and integrated way.
 * Child Process Debugger for Visual Studio: An extension to the visual studio debugger and remote debugging tool that adds support to attach to and debug child processes automatically.
 * Dr. Watson: Windows inbuilt exception handler or problem recorder tool.
 * Application Verifier: Part of debugging tools for windows, it is used to dynamically verify applications built for windows. Generally used to catch stability issues in the application.
 * Gflags: Part of debugging tools for windows. Tool to control global and application specific settings that control the debugging environment on the machine.
 * Glowcode: Tool to analyze performance of an application and to detect memory leaks.
 * Debug Diagnostics: Primarily used for analyzing hangs and crash issues in IIS web applications apart from other applications and issue analysis.
 * Dependency Walker: A tool to analyse dependencies of a binary in static and dynamic mode.
 * Sysinternal Suite: A collection of tools to check process hangs, pipe issues and to get a view of processes, system etc.
 * Windows Performance Analyzer: Collects performance counters that help analyze performance issues in applications, databases’ etc.
 * Wireshark: A tool to analyse network or protocol related issues.  Recently it has also included USB analyser.
 * Microsoft Message Analyzer: Microsoft version of Wireshark.
 * Spy++: A tool used to debug UI related issues such as message handling in win32/MFC etc. applications.
 * Oleviewer: Active X, OLE object and Microsoft COM component object viewer and database.

Debugging Methods and Techniques

 * Detect memory leak using CRT: A technique to detect memory leak in c++ code that uses new or malloc.
 * Symbols and symbol path setup: Check link for details.
 * An example setting could be _NT_SYMBOL_PATH = C:\Windows\System32;C:\Windows\Symbols\dll;c:\symbols\local;srv*c:\symbols\web*http://msdl.microsoft.com/download/symbols;srv*c:\symbols\myproduct*\\symbolserverofmyproduct\myproduct \symbols;
 * MODPATH: An environment variable used to set the path to the folder that contains binaries for the dump being analyzed. Used in visual studio debugger. This blog on minidump might help understand modpath.
 * RPC debugging: A method to debug COM client-server applications.