Welcome back to the Debug Diagnostics Blog.


Hello,

My name is Finbar Ryan and I am an Escalation Engineer for IIS and Asp.Net in Europe and I am based in the UK.
I’ve volunteered to be the editor of the Debug Diagnostics blog and our mission will be to share with you hints and tips and inside information on how best to use this tool.

I thought we’d start by re-stating what Debug Diagnostics 1.2 does for you and how to get started with the tool.

What is Debug Diagnostics 1.2?

Debug Diagnostics 1.2 is the latest version of a tool that will help you diagnose performance issues with your applications or services.
It helps you get the right debug data at the right time.

You can download it from the download centre here.

What will it help me with?
The tool is designed to help you with the most common types of application issues like the following.

  1. Unexpected Process Terminations or “Crashes”.
    Unfortunately some times a process will exit unexpectedly and you need to understand why.
    Most people refer this to type of failure as a “crash” and it can be the result of an unhandled access violation or other reasons for process termination.
  2. Unresponsive processes or “Hangs”.
    We’ve all probably seen instances of an application which has stopped responding and we’ve had to end the process.
    As with the “crash” type of issue this has become known as hang.
  3. Unexpected Memory Usage issues or “Memory Leak”.
    A process may begin to consume more memory than expected and this can lead to a hang or a crash. This is sometimes referred to as a memory leak.
    Debug Diagnostics allows you to understand how your memory is allocated and where the allocations come from.

 

The tool will help you gather the right data and will also help you analyse the data in more detail.

Who developed this tool?
This tool was originally developed by members of the IIS Support Teams within Microsoft. As the tool has become used more and more the development team has also grown to include members from other support teams.
So now we have people from SharePoint, Internet Explorer, Component Services and the IIS team all making sure that the tool is ready to diagnose the kinds of issues we see regularly.

How does Microsoft use this tool?
We will send this tool to you, generally as part of a support case, and gather data to help you diagnose your issue.
If you ever send a memory dump file of a process to Microsoft as part of a support case then this will be automatically analysed with Debug Diagnostics.

This is all part of our diagnostics which is focused around reducing troubleshooting time and improve response times for our technical support customers.

Steve Edwards has a great video on this strategy here .

What’s new in Debug Diagnostics 1.2?

Below is the list of the new features introduced in Debug Diagnostics 1.2.

Analysis:

· We’ve added analysis for  .Net 2.0 Framework and higher Version and integrated this into the Crash Hang analysis scripts.
· There’s a new SharePoint Analysis Script.
· There’s a new Performance Analysis Script.
· .NET memory analysis script (beta).
· Native heap analysis for all supported operating systems.

Collection:

· You can now generate  a series of User dumps.
· We have a new Performance Rule.
· We added IIS ETW trace to enhance the ability to detect hangs in IIS processes.
· .NET CLR 4.0 support.
· Managed Breakpoint Support.
· We report User dump generation to the Event log.

Deployment

· Import/Export of rules and configuration, including 'Direct Push' to remote servers.
· Enterprise deployment support using XCopy and Register.bat.

What can I expect to see on this blog.

So far we’ve got the following items planned for this blog.

  1. A list of the most commonly asked questions to Microsoft on the Debug Diagnostics 1.2 tool.
  2. How to use Debug Diagnostics to capture data for some of the most common IIS scenarios.
  3. A Walkthrough on how to use the Import and Export Rules functionality for Web Farms.
  4. Guest posts from Microsoft Support Engineers on how they use this tool.

 

What would you like to see us feature on this blog?
Please use the comments section to feed back on this post or let us know via email at dbgdiag@microsoft.com

Thanks,

Finbar


Comments (2)

  1. Moshe says:

    I am using this grate tool for years. waiting for new version and options.

  2. Daniel says:

    So, I decided to uninstall the Debug Diagnostics Tool (doing maintenance), and during uninstall (from control panel) I was presented with an error

    "Failed to create 32 bit dbghost  error 0x80040154"

    I looked into the error, not being able to find the root of the problem – I'm guessing that a service is still trying to call the dbghost. What I found was the register.bat and unregister.bat seems to be very different (this being a 64-bit server)

    The register.bat performs the following commands:

    dbgsvc /service

    dbghost /regserver

    regsvr32 /s extsComplusDDExt.dll

    regsvr32 /s exts CrashHangExt.dll

    regsvr32 /s extsIISInfo.dll

    regsvr32 /s extsMemoryExt.dll

    regsvr32 /s extsSharePointExt.dll

    x86supportdbghost /regserver

    regsvr32 /s x86supportextsComplusDDExt.dll

    regsvr32 /s x86supportextsCrashHangExt.dll

    regsvr32 /s x86supportextsIISInfo.dll

    regsvr32 /s x86supportextsMemoryExt.dll

    regsvr32 /s x86supportextsSharePointExt.dll

    While the unregister.bat performs these commands:

    net stop dbgsvc

    dbgsvc /unregserver

    dbghost /unregserver

    regsvr32 /s /u extsComplusDDExt.dll

    regsvr32 /s /u extsCrashHangExt.dll

    regsvr32 /s /u extsIISInfo.dll

    regsvr32 /s /u extsMemoryExt.dll

    regsvr32 /s /u extsSharePointExt.dll

    Now I can't be the only one that noticed some commands missing here?

    Should the unregister.bat not unregister every instance of the x86support services and dll's?

    Like this:

    net stop dbgsvc

    dbgsvc /unregserver

    dbghost /unregserver

    regsvr32 /s /u extsComplusDDExt.dll

    regsvr32 /s /u extsCrashHangExt.dll

    regsvr32 /s /u extsIISInfo.dll

    regsvr32 /s /u extsMemoryExt.dll

    regsvr32 /s /u extsSharePointExt.dll

    x86supportdbghost /unregserver

    regsvr32 /s /u x86supportextsComplusDDExt.dll

    regsvr32 /s /u x86supportextsCrashHangExt.dll

    regsvr32 /s /u x86supportextsIISInfo.dll

    regsvr32 /s /u x86supportextsMemoryExt.dll

    regsvr32 /s /u x86supportextsSharePointExt.dll

    Anyways, I tried running my own script before uninstalling – but I still end up getting the error message.

    Please advise, asap, on how to uninstall properly. These kind of deployment errors are so f-ing annoying!

Skip to main content