2

この C# アプリケーションは、未処理の例外が発生したときに MinidumpWriteDump を呼び出します。

ユーザーからいくつかのクラッシュ ダンプを受け取りましたが、SOS でクラッシュ ダンプを開くことができず、クラッシュの原因となった例外を確認できません。

取得しているダンプの種類はMiniDumpWithPrivateReadWriteMemory です

MS パブリック シンボル サーバーを使用するように _NT_SYMBOL_PATH を構成しました。このクラッシュ ダンプを WinDBG でデバッグすると、必要な DLL が自動的にダウンロードされます (このダンプは、別のバージョンの .NET 2 を搭載したマシンで取得されたものです。 .3053)

!Threads を実行すると、次の出力が得られます。

ThreadStore のリクエストに失敗しました

ダンプマシンで取得したものとは異なるバージョンの CLR を処理するためのテクニックを説明しているすべての可能なサイトを調べましたが、どれもうまくいきませんでした。

これらのクラッシュをデバッグするにはどうすればよいですか?

何か問題がありますか (.NET プロセスから間違った種類のダンプを取得するなど)。

編集:

~* の結果は次のとおりです。

0:000> ~* . 0 Id: 1338.258 Suspend: 0 Teb: 7ffdf000 Unfrozen Priority: 0 1 Id: 1338.2a0 Suspend: 0 Teb: 7ffde000 Unfrozen Priority: 0 2 Id: 1338.1fd4 Suspend: 0 Teb: 7ffdd000 Unfrozen Priority: 0 3 Id: 7e838. : 0 Teb: 7ffda000 Unfrozen Priority: 0 4 Id: 1338.1148 Suspend: 0 Teb: 7ffd9000 Unfrozen Priority: 0 5 Id: 1338.b1c Suspend: 0 Teb: 7ffd7000 Unfrozen Priority: 0 6 Id: 1338.f94 Suspend: 0 Teb: 7ffd4000 Unfrozen Priority: 0 7 Id: 1338.11b4 Suspend: 0 Teb: 7ff4f000 Unfrozen Priority: 0 8 Id: 1338.1814 Suspend: 0 Teb: 7ff4e000 Unfrozen Priority: 0 9 Id: 1338.1cc4 Suspend: 0 Teb: 0 冷凍優先度 1 Id: 1338.1e48 サスペンド: 0 Teb: 7ffd5000 凍結解除優先度: 0 11 Id: 1338.

!analyze -v の結果は次のとおりです。

分析する

4

2 に答える 2

2

WinDbgが間違ったバージョンのmscorwksDLLをロードしている可能性があります。.cordll -lpを使用して、ロードするCLRデバッグモジュールをWinDbgに明示的に通知してみてください。このブログ投稿も参照してください:SOSおよびPSSCOR2を使用したWinDbgでのマネージコードのデバッグの問題(例:「ThreadStoreの要求に失敗しました」)

于 2011-08-10T14:27:13.717 に答える
1

' MiniDumpWriteDump ' に渡すオプションを変更する必要があります。ここに記載されているオプションが含まれていることを確認してください。

于 2011-11-25T13:15:00.713 に答える