17

.NET 4.0 のダンプ デバッグ サポートにより、(もちろんユーザーに尋ねた後:) C# プログラム クラッシュのミニダンプを作成して問題追跡システムにアップロードすることを自動的に検討しています (ミニダンプが問題の原因を解決するのに役立つようにするため)。クラッシュ)。

WithFullMemory ミニダンプ タイプを使用すると、すべて正常に動作します。スタック変数とヒープ変数の両方を確認できます。残念ながら、(圧縮された) ダンプは、小さな C# プログラムであっても非常に大きくなります。

"Normal" ミニダンプ タイプを使用すると、非常に小さなダンプが得られますが、マネージ デバッガーではスタック変数情報さえ利用できません。実際、マネージド デバッガーでは、WithFullMemory よりも小さいものはまったく役に立たないようです。MINIDUMP_CALLBACK_ROUTINE を使用して、含まれるモジュール情報を独自のモジュールに制限する試みをいくつか試みましたが、マネージ ダンプにはほとんど影響がないように見えますが、それでもマネージ デバッグを壊すことができますか?

管理されたデバッグに役立つようにしながら、ミニダンプをトリミングする方法に関するヒントはありますか?

4

5 に答える 5

3

次のフラグを使用してスペースを節約し、C++ アプリケーション用の便利なミニダンプを生成します。

MiniDumpWithPrivateReadWriteMemory | 
            MiniDumpWithDataSegs | 
            MiniDumpWithHandleData |
            MiniDumpWithFullMemoryInfo | 
            MiniDumpWithThreadInfo | 
            MiniDumpWithUnloadedModules

フラグ値は DbgHelp.h で指定され、C# にマーシャリングする必要があります。ダンプは、CallbackRoutine を指定することによってさらに制限されます。

于 2011-03-28T18:46:27.907 に答える
1

上記のように、ClrDump は非常にクールに見えますが、1.1 でのみ動作するようです。および 2.0 ランタイム。

于 2011-02-02T15:55:15.260 に答える
1

敬意を表して、Microsoft WinQual アカウントにサインアップし、アプリケーションを Microsoft に登録することを強くお勧めします。

http://www.microsoft.com/whdc/winlogo/maintain/StartWER.mspx

これにより、Microsoft の広範なクラッシュ コレクションおよび分析サービスを (無料で) 利用できるだけでなく、Windows に組み込まれているエラー レポート機能を使用して、アプリケーションの修正プログラムやパッチを公開することもできます。

さらに、WinQual プログラムに参加することで、アプリを展開し、社内の Windows エラー報告システムを採用している企業も、アプリのパッチを収集、報告、および受け取ることができます。

もう 1 つのメリットは、WinQual を採用することで、アプリのロゴ認定に一歩近づくことです。

WinQual を使用している私が協力したすべての OEM および ISV は、独自のクラッシュ収集およびレポート システムを展開する場合と比較して、膨大な量の労力と費用を節約しています。

于 2011-02-15T07:42:06.107 に答える
0

ClrDump の作成者に電子メールを書き、彼のツールが「最小」モードでダンプを作成するために使用した MINIDUMP_TYPE パラメータについて質問しました。私はここに彼の答えを投稿しました: What is minimum MIDUMP_TYPE set to dump native C++ process that hosts .net component to be able to use !clrstack in windbg

于 2011-11-25T13:07:00.200 に答える
0

ClrDumpが役立つかもしれません。

ClrDump は、マネージド アプリケーションの小さなミニダンプを生成できるツールのセットです。以前は、.NET アプリケーションの事後分析を実行する必要がある場合は、フル ダンプ (非常に大きなサイズ) を使用する必要がありました。ClrDump は、アプリケーション内のすべてのスレッドの呼び出しスタックを回復するのに十分な情報を含む小さなミニダンプを生成できます。

于 2010-10-18T13:40:21.550 に答える