DebugDiag 2 Update 1 is now available






NOTE:  This is not the latest version of DebugDiag.

Please download the latest version from













Hi All,

The DebugDiag development team is very excited to announce the general availability of DebugDiag 2 Update 1. This update targeted a number of issues that were raised in the previous 2.0 release. A summary of these issues is as follows:

-      DAC Load issues during analysis

-      A number of analysis rules exceptions fixed

-      Breakpoint Reset in control script

-      Dbghost leak with External Debugger Engine

-      Wrong Script block for configured exceptions

-      UI fixes in Crash Rule Preferences

-      …etc.

In addition to this, the update introduced some new features. A summary is as follows:

-   MiniDump support in analysis.

-   Reduced rule’s log file size.

-   Added debugging overhead summary in the rule’s log file.


Release is available at:

Please email us at dbgdiag at Microsoft dot com with any questions/issues.


Thank you

The DebugDiag Team


Comments (16)
  1. Well done and thanks DebugDiag team!

  2. Jill says:

    Are there any plans to release a x86 version of this update?

  3. mouradl says:

    Hi Jill,

    Sorry for the confusion! x86 should be with the update as well. For some reason it was not showing. Here is the link though until we fix this problem.


  4. Cybermaxs says:

    I have Debug Diag 2.0 and auto-update is not working.

    AutoUpdate path seems unreachable.

  5. mouradl says:

    Thanks for reporting this. It should be fixed now.

  6. Cybermaxs says:

    Confirmed, thanks

  7. Dave says:

    DD 2.0 and DD2.0 U1 – Setting perfomance based CPU spike dumps for spikes over 99% for 360 seconds, the dump is triggered if a spike of around 4 or more seconds is experienced. Was not able to get DD to stop triggering dumps until I went to 360000 (6 min in milliseconds). Did not test to confirm DD is reading milliseconds but short duration spikes would triger a dump at 360, and 3600 seconds.

  8. anandb says:

    Is there a way to use the debug diag analysis tool to use a reflective dump created from procdump? When I try to use it, the tool crashes

  9. tmenier says:

    Thanks for a great tool! Quick question about a specific aspect of the report. My most costly threads (ASP.NET app) have no stack trace in the thread details but show this:

    General Operation Info

    Type       System.Collections.Generic.Dictionary`2[System.Int32,System.String]

    What is that telling me exactly? Is it referring to a Dictionary<int, string> somewhere in the profiled thread that I should be hunting down? Thanks!

  10. Ganesh R. says:


    I am using the DebugDiag JIT Debugger Feature. I installed it from an elevated command promt using the command DbgHost.exe -JITInstall.

    1. The first issue is that I had to run the command for both the 64 bit version and 32 bit version of DbgHost to truely capture all dumps on the machine. It is not clear from the documentation that I had to do that.

    2. The dumps are created by default in C:Program FilesLogsMisc folder. However for applications running in standard user accounts, the dump is not created as they cannot access the Misc folder due to access right issue.

    Also DbgHost does not have a manifest which will disable File Virtualization. So it fails silently and does not create the dump. Manually adding permissions on Logs folder for standard user account worked.

    3. I am not able to generate a dump for an unmanaged VC++ 10 based console application. The application just throws an int in Main(). WER catches it Dbghost does not. Does Dbghost as JIT Debugger even supported unmanaged applications?

    I am using DebugDiag 2.1

  11. Chirag Dave says:


    How do I report an issue with this tool?

    I am getting below exception whenever i try to run "PerfAnalysis" for a single or series of memory dumps:

    Type:  System.ArgumentOutOfRangeException

    Message:  Index and length must refer to a location within the string. Parameter name: length

    Stack Trace:

    System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)




    DebugDiag.AnalysisRules.PerfAnalysis.RunAnalysisRule(NetScriptManager manager, NetProgress progress)

    DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)

    I am using Debug Diag 2.1 on Windows 7 SP1 x64, Enterprise Edition.


    Chirag Dave

  12. Etienne says:


    Could you guys document the available command line switches to the different executables in DebugDiag?

    I'm especially interested in in disabling the automatic opening of the analysis report generated by debugdiag.analysis.exe (DebugDiag 2.1).



  13. update 2 says:

    When will we get the promised Update 2 for DebugDiag 2?

  14. Chris Kline says:

    Is there a way to generate a crash analysis report entirely via the command line? I'd like to hook this into our automation.

    Also, is there documentation on the command line arguments?

  15. download says:

    Can't download debugdiag (…/confirmation.aspx). Tried x times already but no success.

  16. Tom Carter says:

    I have the same error as @Chirag Dave


    Message:  L'index et la longueur doivent faire référence à un emplacement situé dans la chaîne. Nom du paramètre : length

    Stack Trace:

    à System.String.Substring(Int32 startIndex, Int32 length)

    à DebugDiag.AnalysisRules.CDump.DropSymSrvInternal()

    à DebugDiag.AnalysisRules.CDumps.DropSymSrv()

    à DebugDiag.AnalysisRules.PerfAnalysis.VerifyAndSortDumps()

    à DebugDiag.AnalysisRules.PerfAnalysis.RunAnalysisRule(NetScriptManager manager, NetProgress progress)

    à DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)

Comments are closed.

Skip to main content