The DebugDiag 2.0 Team

Project Manager:

  • Mourad Lagdas

Lead Developer:

Core Team

  • Bret Bentzinger
  • Brian Roder
  • Ivanov Cepeda Pinto
  • Tomas Restrepo
  • Trevor Fellman
  • Richard Marr 

Script Conversion Team:

  • Amol Mehrotra
  • Devendra Asane
  • Nazeef Mallick
  • Puneet Gupta (Script Conversion Team Lead)
  • Rajkumar Rangaraj
  • Rakki Muthukumar
  • Santhosh Somayajulu
  • Shamik Misra
  • Sunil Kumar Chakrapani

Additional Contributors:

  • Dario Spilkin
  • George Archer
  • Jack Davis
  • Jeremy Phelps (Nasty Bug Ninja)
  • Kelvin Houghton
  • Larry Wall
  • Prakash Patel
  • Rodney Viana
  • Todd Foust

External Contributors:

  • Practices Checker: Sean Thompson
  • DynamicsAX: Tariq Bell, Pere Turegano, Erik Engstrom, Doug Bartley
  • CLRMD: Lee Culver
Comments (27)

  1. Chandra says:

    Thanks for looking and upgrading this very useful tool to new shape.

    Congrats Team!

  2. Luiz G. Salamon says:

    this error is occurring, whereas the previous version did not occur:

    Probe of…/file.ptr failed: The remote server returned an error: (407) Proxy Authentication Required.

    How set access ?

  3. Luiz G. Salamon says:

    Hi, if I set path with this format : c:filespdbs1;c:filespdb2 path not parsed correctly

  4. Luiz G. Salamon says:

    I'd like feature like this:

    – attach to service for exception capture;

    – after dump, restart service for running state

  5. Luiz G. Salamon says:

    The analysis result show this error:

    Found file C:Softmscordacwks_X86_X86_2.0.50727.3649.dll but file timstamp:size 1366625120:1015808 != desired 1366613203:5939200, rejecting.

    What happened? the module is the same on dumps which have been generated.

  6. Wade Mascia says:

    @lSalamon the mscordacwks issue is a bug in clrmd and it's resolved in our next release.  We're targeting early 2014 for the update.

  7. Luiz G. Salamon says:

    About path configuration, I have many path entries and including all in one line is desired option.

  8. AKokfai says:

    After installing and using "Debug Diagnostic Tool" to add rule and export the rule, how can we import the rule and activate the crash capture rules in unattended way to another 1000 machines by using scripts? Are there any scripting commands to do this? I could not find anywhere.

  9. Bugged says:

    After installing Debug Diag 2.0 on a x64 machine, when attempting to diag a .Net 4.0 website on IIS (windows 2008 R2), the memory of the DbgSvc.exe grows without bounds.  This occurs when an exception is established for .Net CLR to take a stack trace.  This was not occurring on v1.2.  After uninstall 2.0 and re-installing 1.2, the problem is now occurring on v1.2 as well.

    Please advise!

  10. Paul F. Williams says:

    @Wade Mascia: Thank you for fixing that bug!  I had the same issue with mscordacwks.dll not being found despite having the correct version with the correct name.  I cannot use Debug Diag 2.0 until it is resolved.  I had to downgrade to a prior version.

  11. Chris Powers says:

    We are seeing the same unbound memory growth mentioned above by Bugged. Any suggestions?

  12. Wade Mascia says:

    @Kokfai:  DebugDiag.Collection.exe /IMPORTCONFIG <file>

    @Bugged:  the issue is in dbghost.exe not dbgsvc.exe.  If you do see any issue with dbgsvc.exe, let us know.  Also the reason why you still see the leak after reverting to v1.2 is because the v2.0-generated crash rule script is not deleted during uninstall.  If you edit your rule and click next-next-finish, you'll get a new script and the issue will be resolved.

    @Bugged/Chris:  The memory leak is mentioned here:…/did-you-know.aspx.  It's a leak in sos.dll that ships with the .NET framework.  I'm working on a workaround to the problem and hope to have something available soon.  

    For a temporary workaround, you can disable the exception monitoring as mentioned in the 'Did you know' post that I linked to above.  If you need to keep the exception monitoring, then you can try adding the 'ibp' (Initial Breakpoint) event to your rule (click the 'Events' button near the "Exceptions" and "Breakpoints" buttons), set its action type to 'Custom…' and enter the following 2 lines of script:

     Debugger.Execute(".unload sos")

     Debugger.Execute(".load psscor4")

    That would be for .NET 4.0.  For .NET 2.0 – 3.5, use psscor2 instead of psscor4.  For .NET 1.0 – 1.1, use psscor instead of psscor4.  For .NET 4.5, I'm sorry to say there's no workaround other than turning off the exception monitoring.

    Note that I haven't tested this, so feel free to reply with your findings.  If they're good, I'll update the 'did you know' post.  wmascia at Microsoft dotcom

  13. Gary_R_Campbell says:

    Any update on the " issue with mscordacwks.dll not being found despite having the correct version with the correct name. " I've been creating analysis rules for defect triage but without the ability to support different dacs its a non-starter for us

  14. Dave says:

    Is there a C# example to produce the same CrashHangAnalysis report using the API?  

  15. Wade Mascia says:

    @Dave – We ship a ton of samples at <DebugDiagInstallDir>SamplesAnalysisRules, and you can always reflect out the code for <DebugDiagInstallDir>AnalysisRulesDebugDiag.AnalysisRules.dll

    @Gary/All – The fix is included in our latest update:…/details.aspx

  16. Gary Campbell says:

    Wade, thank you very much! My initial testing shows it to run like a champ. I'll be back with updates as time permits. Regards, Gary

  17. BKStrelioff says:

    1) A C# VS2013 sln would be helpful that showed setting up the paths (image, source, symbol) as well as a mixture of "." and "!" commands (i.e. SOS support). Particularly where the dmp files come from a system with a different os/version than the system diagnosing the files (i.e. sos/clr versions differ).

    2) Also, I frequently encounter situations where !pe on the NativeException indicates it is an invalid object. Can you provide some hints here (or better yet a working C# example of displaying the exception information (type, stack trace) for the NativeException?

    3) Can you provide some hints/C#-examples of what the Exception parameters are supposed to represent, and how to properly display them?


  18. Tony says:

    Thank you the team for the great tools.

  19. Jeff says:

    Love this tool and have been using this for sometime.  What I would like to do is take the custom crash rule that I have created in the UI and kick that off from the command line.  I have tried using the dbghost to launch it by giving it the script flag but it does not seem to work.  Any way to launch my custom rule outside of the UI?  Any assistance would be appreciated!

  20. Wade Mascia says:

    @Jeff, use the 'Export' button to export your rules/settings to a file, then DebugDiag.Collection.exe /ImportConfig <file> to load them from the command line.  If you want to export *everything* then you can just take the config.xml to the destination machine, overwrite the existing file, and run DebugDiag.Collection.exe /ReloadConfig.  Note you can also use the 'Import' button in the UI to do the import, or you could also 'push' to the destination server using the 'Export', then 'Export to remote machine(s)…' buttons.

  21. Alex says:

    I am trying DebugDiag 2.0 update 1 on a web server and keep getting this error below:


    No report file was generated


    An error occurred while generating the analysis report


    Type: COMException

    Message: Error HRESULT E_FAIL has been returned from a call to a COM component.

    StackTrace:   at DebugDiag.DbgLib.DbgControlClass_Legacy.OpenDump(String DumpPath, String SymbolPath, String ImagePath, Object pProgress)

      at DebugDiag.DotNet.NetDbgObj.OpenDump(String dumpPath, String symbolPath, String imagePath, Object pProgress, Boolean throwOnBitnessMismatch, Boolean loadClrRuntime, Boolean loadClrHeap)

      at DebugDiag.DotNet.NetDbgObj.GetDumpFileType(String dumpFile)

      at DebugDiag.DotNet.NetAnalyzer.AddDumpFile(String dumpFile, String symbolPath)

      at DebugDiag.DotNet.NetAnalyzer.AddDumpFiles(List`1 dumpFiles, String symbolPath)

      at DebugDiag.Analysis.AnalyzerClient.RunAnalysisAsyncInternal(NetProgress progress, String symbolPath, String imagePath, List`1 dumpFiles, List`1 analysisRules, String reportFileDirectoryOrFullPath, Boolean IncludeSourceAndLineInformationInAnalysisReports, Boolean SetContextOnCrashDumps, Boolean DoHangAnalysisOnCrashDumps, Boolean IncludeHttpHeadersInClientConns, SynchronizationContext synchContext)

    What can I do?

    Thanks, many years of using 1.x, looking forward to using 2.x

  22. junrau says:

    I am getting the same E_FAIL error on OpenDump as Alex is.  Any solution/workaround?

  23. Peter says:

    Same issue for me running DebugDiag

    Getting the error when trying to analyze dumps

  24. Joakim says:

    Same COM Exception using

    Type: COMException

    Message: Error HRESULT E_FAIL has been returned from a call to a COM component.

  25. Joakim says:

    Do you have any news on the " HRESULT E_FAIL has been returned from a call to a COM component" error. Seems we are quite a few suffering from it.

  26. Naga says:

    we are seeing application slowness when we activate Stack Overflow rule in Debug diagnostic Tool v 2.2, if we de-activate the rule application working fine we are not seeing any slowness, Can someone please share why we are seeing this slowness after activating this rule.