問題タブ [debugdiag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - Windows 10 で UI オートメーションを使用するとメモリ リークが発生する
Windows 10 マシンでメモリ リークが発生しています。問題の原因となっているプロセス (WPF アプリケーション) から取得したダンプを調査したところ、「MS.Internal.Automation.SynchronizedInputProviderWrapper」の多くのインスタンスと、基本的にほとんどのオブジェクトが保持されていることがわかりました。このタイプは、ガベージ コレクションではなくメモリを参照していました。
私は dotMemory (インスタンスのキー保持パス)、Visual Studio 2019 (ダンプ比較用)、および WinDbg をさらに調査するために使用しています。
このスタックオーバーフローの回答によると: UIAutomation メモリの問題
Win 8 RT および Windows 2012 サーバーの問題を修正するロールアップです: https://support.microsoft.com/en-us/help/2885482/memory-leak-when-using-ui-automation-in-windows- 8
Microsoftによると:このリンクを参照してください
UI オートメーション フレームワークを使用する複数のアプリケーションが Windows 8 ベースのコンピューターで同時に実行されている場合、メモリ リークが発生し、CPU 使用率が高くなります。
また、Windows 10 でも同じ問題が発生する可能性があると思いますが、この問題を修正する修正プログラムまたはロールアップが見つかりません。
アップデート:
SuperDump で別の分析を行ったところ、メモリ リークの潜在的な説明が見つかりましたが、コール スタックを解釈できません。
ありがとう
c# - 特定のコードによっては、DebugDiag ダンプに .NET 例外が含まれない
DebugDiag を使用して、処理されない .NET 例外の情報を含むダンプを作成しようとしています。
ダンプ ファイルの作成は、実行中のコードに依存しているようですが、その理由はわかりません。
これらは私が取ったステップです:
例外
DebugDiagTest
をスローする次のコードで名前を付けた単純なコンソール アプリケーションを準備します。InvalidOperationException
でコンパイルして実行し
DebugDiagTest.exe true
ます。まだキーを押さないでください。キーが押されるまで待ちます (ステップ 4)。DebugDiag 例外ルールを準備します (この記事に従うことができます)。
実行中の に戻り、
DebugDiagTest.exe
何らかのキーを押してクラッシュさせます。に移動する
C:\Program Files\DebugDiag\Logs\Crash rule for all instances of DebugDiagTest.exe
と、ファイルが表示.dmp
されます。で実行し
DebugDiagTest.exe false
、再び に移動すると、ファイルが作成されていないC:\Program Files\DebugDiag\Logs\Crash rule for all instances of DebugDiagTest.exe
ことがわかります。.dmp
いつでも再実行できるDebugDiagTest.exe true
ようになり、毎回ダンプ ファイルが作成されることを確認できます。ただし、再実行してDebugDiagTest.exe false
もダンプ ファイルは作成されません。
私の質問:
実行DebugDiagTest.exe true
するとダンプが作成されるのに、作成されないのはなぜDebugDiagTest.exe false
ですか?