Microsoft KB Archive/931370

= The Debug Diagnostic 1.1 tool is now available =

Article ID: 931370

Article Last Modified on 10/11/2007

-

APPLIES TO


 * Windows Vista Ultimate
 * Windows Vista Ultimate 64-bit Edition
 * Windows Vista Enterprise
 * Windows Vista Enterprise 64-bit Edition
 * Windows Vista Business
 * Windows Vista Business 64-bit Edition
 * Windows Vista Home Premium
 * Windows Vista Home Premium 64-bit Edition
 * Windows Vista Home Basic
 * Windows Vista Home Basic 64-bit Edition
 * Windows Vista Starter
 * Microsoft Windows Server 2003, Standard Edition (32-bit x86)
 * Microsoft Windows Server 2003, Standard x64 Edition
 * Microsoft Windows Server 2003, Enterprise Edition
 * Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
 * Microsoft Windows Server 2003, Enterprise x64 Edition
 * Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
 * Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
 * Microsoft Windows Server 2003, Datacenter x64 Edition
 * Microsoft Windows XP Professional
 * Microsoft Windows XP Home Edition
 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Professional Edition

-





SUMMARY
''This article describes the features and availability of the Debug Diagnostics 1.1 tool. Additionally, this article describes how to use the Debug Diagnostics 1.1 tool to analyze and resolve application issues.''



INTRODUCTION
The Debug Diagnostics 1.1 tool is designed to help troubleshoot performance issues in any Win32 user-mode process. For example, the Debug Diagnostics 1.1 tool can help you troubleshoot an application that stops responding (hangs) or crashes, performs slowly, leaks memory, or has memory fragmentation issues. The Debug Diagnostics 1.1 tool also includes debugging scripts for Microsoft Internet Information Services (IIS) applications, Web data access components, Microsoft COM+ applications, and related Microsoft technologies.

The Debug Diagnostics 1.1 tool is available as a stand-alone tool. To obtain the Debug Diagnostics 1.1 tool, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3

Note The Debug Diagnostics 1.0 tool is available as part of the IIS Diagnostics Toolkit 1.0 or as a stand-alone tool.



MORE INFORMATION
The Debug Diagnostics 1.1 tool uses Microsoft Component Object Model (COM) objects to provide an extensible object model. The Debug Diagnostics 1.1 tool includes a script host and a built-in reporting framework.

The Debugging Service
The Debugging Service (Dbghost.exe) performs the following actions:
 * Attaches the host to and detaches the host from running processes
 * Collects performance monitor data
 * Contacts a server and uses the HttpStatusCode enumeration to determine the status of the server. This operation is also known as an HTTP ping.
 * Monitors memory leaks in running processes
 * Collects debugging session state information
 * Shows the state of each defined rule

The Debugger Host
The Debugger Host (Dbghost.exe) hosts the Windows Symbolic Debugger Engine (Dbgeng.dll). The Debugger Host attaches processes to the Windows Symbolic Debugger Engine and generates memory dumps. The Debugger Host also hosts the primary module that is used to analyze memory dumps.

Note The Debugger Host is not dependent on the Debug Diagnostic service (Dbgsvc.exe).

The user interfaces
The user interfaces (Debugdiag.exe and Debugdiaganalysisonly.exe) in the Debug Diagnostics 1.1 tool are interfaces that are used to analyze memory dumps, automate creating control scripts, and display the status of running processes. These processes include services.

The Debug Diagnostics 1.1 tool includes three views:
 * Rules

Uses a wizard to create control scripts for the debugger host
 * Advanced analysis

Runs the selected analysis script on one or more memory dump files
 * Processes

Displays the status of running processes and scripts

How to use the Debug Diagnostics 1.1 tool
Before you start the Debug Diagnostics 1.1 tool, you must identity the kind of issue that you are experiencing. For example, determine whether the application stops responding, crashes, performs slowly, or leaks memory. After you know the kind of issue, you can configure the Debug Diagnostics 1.1 tool to gather the correct data. Then, you can use the data to determine and resolve the cause of the problem.

Debug a process crash
Typically, a process crash indicates that an unhandled exception in a process or code that is running in a process has terminated the process. To debug a process crash, create a crash rule on the process. You can attach the Debug Diagnostics 1.1 tool to a specific process. The Debug Diagnostics 1.1 tool monitors the process for any exception or custom breakpoint that causes the process to terminate unexpectedly. When a crash occurs, a memory dump file is created in the folder that is specified in the rule.

For more information about how to create a crash rule, click the following article number to view the article in the Microsoft Knowledge Base:

919789 How to use the Debug Diagnostics tool to troubleshoot an IIS process that stops unexpectedly

Debug a process that stops responding or a slow performance issue
Use one of the following methods.

Method 1: Create a hang rule
The hang monitoring feature is designed to troubleshoot IIS process performance issues. For example, you can create a hang rule to troubleshoot an issue in which pages in a Web application take longer than expected to load or do not load at all.

When you create a hang rule and then specify a process and URL to monitor, you must also specify a ping interval and a response time-out value. The Debug Diagnostics 1.1 tool sends a request to the server at configured intervals. If the server does not respond before the configured time-out, a memory dump file is generated for the specified process.

For more information about how to create a hang rule, click the following article number to view the article in the Microsoft Knowledge Base:

919791 How to use the Debug Diagnostics Tool to troubleshoot high CPU usage by a process in IIS

Method 2: Manually create a memory dump file for the process
When the process stops responding or performs slowly, you can manually create a memory dump file. To manually create a memory dump file for a process, right-click the process in the Processes view, and then click Create Full Userdump.

Debug memory or handle usage
Use one of the following methods.

Method 1: Create a leak rule
When you create a leak rule against a process, the Leaktrack.dll file is injected into the process to track memory usage and handle usage over time. When you configure a memory leak rule or a handle leak rule, you can configure the Debug Diagnostics 1.1 tool to generate the memory dump file that is based on time or memory usage.

Method 2: Manually create a memory dump file
To do this, right-click the process in the Processes view, and then click Monitor For Leaks. When the process grows to a problem size, right-click the process, and then click Create Full Userdump.

For more information about how to create a memory and handle leak rule, click the following article number to view the article in the Microsoft Knowledge Base:

919790 How to use the IIS Debug Diagnostics tool to troubleshoot a memory leak in an IIS process

Analyze memory dump files
The Debug Diagnostics 1.1 tool can analyze a memory dump file and generate a report file that includes the analysis. Additionally, the report file includes recommendations to resolve the problems that are identified.

The Debug Diagnostics 1.1 tool uses analysis scripts to analyze the process dump file. The following analysis scripts are used most frequently:
 * Crash/hang analyzers

The crash/hang script analyzes exception information in the dump file if a crash is detected. The crash/hang script also analyzes the dump file for issues that are known to cause a hang condition. This script includes IIS, Microsoft Data Access Components, COM+, and Windows Socket information that is related to the process.
 * Memory pressure analyzers

The memory pressure analysis script analyzes the memory usage of a process and displays the data that is gathered by the Leaktrack.dll file.

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

921464 How to use the Debug Diagnostics 1.0 tool to analyze a memory dump file

Keywords: kbinfo kbtshoot kbwebserver KB931370

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.