Defrag Tools #123 - DebugDiag Part 3

Sign in to queue

Description

In this episode of Defrag Tools, Wade Mascia joins Andrew Richards and Chad Beeder to discuss the debugging analysis tool, DebugDiag. In part 3 of this 4 part series, we continue delving in to the features of DebugDiag.

Resources:
Debug Diagnostic Tool - Blog
DebugDiag 2 Update 1 - Download

Embed

Download

The Discussion

  • User profile image
    Magic​Andre1981

    why don't the filenames of the Videos match to the number in the title? Video has 121 and tile is 123.

  • User profile image
    JohnLudlow

    @MagicAndre1981: I think some of the videos are being shown slightly out of order. 

    For example https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-118-PerfView-Part-6 is 118 but the video is named as 123

  • User profile image
    Magic​Andre1981

    @John

    thx.

     

    btw, DebugDiag can't analyze Store App Crash dumps. In the Report I see this:

     

    Type:  System.IndexOutOfRangeException
    
    Message:  Das Array hat nicht so viele Dimensionen.
    
    Stack Trace:
    bei System.Array.GetUpperBound(Int32 dimension)
    bei DebugDiag.AnalysisRules.AnalyzeCritSecsImpl.GetPreviousExceptionsRecommendationStringForOwnedLock(String nThreadNum, String sLockModuleName)
    bei DebugDiag.AnalysisRules.AnalyzeCritSecsImpl.BuildRecommendationForCritSecProblem(String sBaseRecommendation, Int32 nThreadNumForExceptionScanning, String sModuleNameForExceptionScanning, Object bAddAppVerifBlurb)
    bei DebugDiag.AnalysisRules.AnalyzeCritSecsImpl.GetRecommendationForCritSecProblem(Dictionary`2 CritSecs, Dictionary`2 BlockingFunctions, Dictionary`2 BlockingModules, Boolean IsLockConvoy, Boolean& bGenericCritsecRecommendation, Boolean bMixedComcallCritsecDeadlockDetected, String& SolutionSourceID)
    bei DebugDiag.AnalysisRules.AnalyzeCritSecsImpl.ReportCritSecProblem(Dictionary`2 CritSecs, Dictionary`2 BlockingFunctions, Dictionary`2 BlockingModules, Boolean bLockConvoyOnly, Boolean bMixedComcallCritsecDeadlockDetected, String Description, Int32 Weight)
    bei DebugDiag.AnalysisRules.AnalyzeCritSecsImpl.AnalyzeCritSec(IDbgCritSec CritSec)
    bei DebugDiag.AnalysisRules.AnalyzeCritSecsImpl.AnalyzeCritSecs()
    bei DebugDiag.AnalysisRules.CrashHangAnalysis.DoHangAnalysis()
    bei DebugDiag.AnalysisRules.CrashHangAnalysis.RunAnalysisRule(NetScriptManager manager, NetProgress progress)
    bei DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)

  • User profile image
    Magic​Andre1981

    Checking a large DWM dump also fails:

     

    Type:  System.OverflowException
    
    Message:  Der Wert für einen Int32 war zu groß oder zu klein.
    
    Stack Trace:
    bei System.Convert.ToInt32(Double value)
    bei DebugDiag.AnalysisRules.HelperFunctionsImpl.PrintMemory(Double Memory)
    bei DebugDiag.AnalysisRules.HeapFunctionsImpl.PrintHeapInfo(INTHeap Heap)
    bei DebugDiag.AnalysisRules.HeapFunctionsImpl.AnalyzeAndReportHeapInfo()
    bei DebugDiag.AnalysisRules.MemoryAnalysis.RunAnalysisRule(NetScriptManager manager, NetProgress progress)
    bei DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)

  • User profile image
    windev

    We taped more PerfView episodes than expected, and then we needed to slot in the WMI episode to cover the C9 Studio closure over the break. This caused the DebugDiag episodes to get way out of whack of what was expected when we taped them months ago.

    My OCD isn't happy either.

    [EDIT] I just fixed some of the ordering. I flipped 119 and 120 so the 7 PerfView episodes are now all together, next is the WMI episode, and then the 4 PerfView episodes. I can't fix the filenames on the media files though. :(

    We'll get it all back in to alignment on the 26th Jan.

  • User profile image
    WadeMascia

    @Andre, those exceptions have been fixed and will be available in the next update (Update 2), which should be available "soon."  http://debugdiag.com will always take you to the latest available download, and by default the DebugDiag.analysis.exe will check for a newer version every time it starts.

  • User profile image
    Magic​Andre1981

    thanks Andrew for the Information about the mismatch.

     

     

     

    @Andre, those exceptions have been fixed and will be available in the next update (Update 2), which should be available "soon." 

     

    ok, I'll test it again with update 2.

     

    Is this also fixed? I trie to analyze an IE Crash which happened during watching Videos on Amazon Instant Video, but this also Fails:

    [code]

    Dump File:  D:\localdumps\iexplore.exe.1412.dmp;

    Type:  System.NullReferenceException

    Message:  Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    Stack Trace:
    bei DebugDiag.AnalysisRules.AnalyzeCrash.AnalyzeException(NetDbgException ExceptionObj, ScriptThreadClass ExceptionThread, Boolean suppressSummary)
    bei DebugDiag.AnalysisRules.AnalyzeThreads.getExceptionFilterAnalysis(ScriptThreadClass Thread, Int32 FrameID)
    bei DebugDiag.AnalysisRules.AnalyzeThreads.getAnalysis(ScriptThreadClass Thread)
    bei DebugDiag.AnalysisRules.AnalyzeThreads.DoAnalyzeThreads()
    bei DebugDiag.AnalysisRules.CrashHangAnalysis.DoHangAnalysis()
    bei DebugDiag.AnalysisRules.CrashHangAnalysis.RunAnalysisRule(NetScriptManager manager, NetProgress progress)
    bei DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)

    [/code]

    I get a warning about silverlight:

    Silverlight is loaded in this process so Managed Exception and Managed Hang Analysis was not done

     

  • User profile image
    Magic​Andre1981

    I get a new crash:

     

    PROCESS_NAME:  DebugDiag.Analysis.exe
    
    ERROR_CODE: (NTSTATUS) 0x80000003 - {AUSNAHME}  Haltepunkt  Im Quellprogramm wurde ein Haltepunkt erreicht.
    
    EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - Mindestens ein Argument ist ung ltig.
    
    EXCEPTION_PARAMETER1:  0000000000000000
    
    NTGLOBALFLAG:  400
    
    APPLICATION_VERIFIER_FLAGS:  0
    
    APP:  debugdiag.analysis.exe
    
    ANALYSIS_VERSION: 6.3.9600.17298 (debuggers(dbg).141024-1500) amd64fre
    
    MANAGED_STACK: 
    (TransitionMU)
    000000001D3CD9D0 000007FF3DFC9C56 DebugDiag_DotNet!DomainBoundILStubClass.IL_STUB_CLRtoCOM(UInt32)+0xd6
    000000001D3CDAE0 000007FF3DFC8177 DebugDiag_AnalysisRules!DebugDiag.AnalysisRules.AnalyzeCrash.AnalyzeAV(DebugDiag.DotNet.NetDbgException, ScriptThreadClass, Boolean)+0x1487
    000000001D3CDC50 000007FF3DFC6C01 DebugDiag_AnalysisRules!DebugDiag.AnalysisRules.AnalyzeCrash.AnalyzeException(DebugDiag.DotNet.NetDbgException, ScriptThreadClass, Boolean)+0x351
    000000001D3CDCB0 000007FF3DFC6598 DebugDiag_AnalysisRules!DebugDiag.AnalysisRules.AnalyzeCrash.AnalyzeExceptionThread(ScriptThreadClass)+0x9f8
    000000001D3CDD40 000007FF3DDCD3B8 DebugDiag_AnalysisRules!DebugDiag.AnalysisRules.CrashHangAnalysis.RunAnalysisRule(DebugDiag.DotNet.NetScriptManager, DebugDiag.DotNet.NetProgress)+0xa88
    000000001D3CDE00 000007FF3DDC6EE4 DebugDiag_DotNet!DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DebugDiag.DotNet.DumpFileType, DebugDiag.DotNet.NetProgress, System.String, System.String, System.String, Boolean, DebugDiag.DotNet.AnalysisRules.AnalysisModes)+0x674
    000000001D3CE0E0 000007FF3DDC5F4E DebugDiag_DotNet!DebugDiag.DotNet.NetAnalyzer.RunAnalysisRules(DebugDiag.DotNet.NetProgress, System.String, System.String, System.String, Boolean, DebugDiag.DotNet.AnalysisRules.AnalysisModes)+0x3ae
    000000001D3CE1B0 000007FF3DDC4846 DebugDiag_Analysis!DebugDiag.Analysis.AnalyzerClient.RunAnalysisAsyncInternal(DebugDiag.DotNet.NetProgress, System.String, System.String, System.Collections.Generic.List`1<System.String>, System.Collections.Generic.List`1<DebugDiag.DotNet.AnalysisRules.AnalysisRuleInfo>, System.String, Boolean, Boolean, Boolean, Boolean, System.Threading.SynchronizationContext)+0x2d6
    000000001D3CE2A0 000007FF3DDC44BA DebugDiag_Analysis!DebugDiag.Analysis.AnalyzerClient+<>c__DisplayClass2.<RunAnalysisAsync>b__1()+0x9a
    000000001D3CE340 000007FF84B1B258 WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)+0x128
    000000001D3CE3A0 000007FF84B1B117 WindowsBase_ni!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)+0x47
    000000001D3CE400 000007FF84B1EA21 WindowsBase_ni!System.Windows.Threading.DispatcherOperation.InvokeImpl()+0x281
    000000001D3CE4C0 000007FF92E01D05 mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0x285
    000000001D3CE620 000007FF92E01A79 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0x9
    000000001D3CE650 000007FF92E01A57 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x57
    000000001D3CE6A0 000007FF84B1E651 WindowsBase_ni!System.Windows.Threading.DispatcherOperation.Invoke()+0x71
    000000001D3CE720 000007FF84B19093 WindowsBase_ni!System.Windows.Threading.Dispatcher.ProcessQueue()+0x2e3
    000000001D3CE7F0 000007FF84B193F3 WindowsBase_ni!System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)+0xb3
    000000001D3CE8B0 000007FF84B1B48A WindowsBase_ni!MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)+0x14a
    000000001D3CE960 000007FF84B1B310 WindowsBase_ni!MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)+0x80
    000000001D3CE9B0 000007FF84B1B18A WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)+0x5a
    000000001D3CEA10 000007FF84B1B117 WindowsBase_ni!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)+0x47
    000000001D3CEA70 000007FF84B1849C WindowsBase_ni!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)+0x2bc
    000000001D3CEB10 000007FF84B1AA00 WindowsBase_ni!MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)+0x140
    000000001D3CEC10 000007FF84CC5DC7 WindowsBase_ni!DomainBoundILStubClass.IL_STUB_ReversePInvoke(Int64, Int32, Int64, Int64)+0x57
    (TransitionUM)
    (TransitionMU)
    000000001D3CEE70 000007FF84B45930 WindowsBase_ni!DomainBoundILStubClass.IL_STUB_PInvoke(System.Windows.Interop.MSG ByRef)+0x70
    000000001D3CEF40 000007FF84B17362 WindowsBase_ni!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)+0x112
    000000001D3CEFE0 000007FF92E01D05 mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0x285
    000000001D3CF140 000007FF92E01A79 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0x9
    000000001D3CF170 000007FF92E01A57 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x57
    000000001D3CF1C0 000007FF936D18DD mscorlib_ni!System.Threading.ThreadHelper.ThreadStart(System.Object)+0x5d
    (TransitionUM)
    
    MANAGED_STACK_COMMAND:  _EFN_StackTrace
    SYMBOL_NAME:  memoryext+64ab
    FOLLOWUP_NAME:  MachineOwner
    MODULE_NAME: MemoryExt
    IMAGE_NAME:  MemoryExt.dll
    DEBUG_FLR_IMAGE_TIMESTAMP:  5356c1ee
    FAILURE_BUCKET_ID:  WRONG_SYMBOLS_80000003_MemoryExt.dll!Unknown
    BUCKET_ID:  APPLICATION_FAULT_WRONG_SYMBOLS_memoryext+64ab
    ANALYSIS_SOURCE:  UM
    FAILURE_ID_HASH_STRING:  um:wrong_symbols_80000003_memoryext.dll!unknown
    

Add Your 2 Cents