6

クラッシュダンプとライブプロセスを分析するために、マイクロソフトの新しいライブラリであるClrMDを試しています。

.NET Frameworkブログ投稿のサンプルに従いました(添付の .cs ファイルを使用)。

サンプルを実行して、サンプルと同じマシンで実行されているプログラムから取得した .dmp ファイルを分析しようとしました。

次のコードを使用して、ランタイム オブジェクトを作成しようとする場合:

ClrRuntime runtime = target.CreateRuntime(dacLocation);

次の例外がスローされます。

Message: Failure loading DAC: CreateDacInstance failed 0x80131c30
 
  at Microsoft.Diagnostics.Runtime.Desktop.DacLibrary.Init(String dll)
  at Microsoft.Diagnostics.Runtime.Desktop.DacLibrary..ctor(DbgEngTarget dataTarget, String dll)
  at Microsoft.Diagnostics.Runtime.DbgEngTarget.CreateRuntime(String dacFilename)
  at DumpFetch.App..ctor()

何か案は?

4

2 に答える 2

1

ClrVersion には、TryDownloadDac(); という別のメソッドがあります。これは正しいものをダウンロードしますが、デバッグしているものと同じアーキテクチャでプロセスを実行する必要があります (64 ビットをデバッグするには 64 ビット アプリ、32 をデバッグするには 32 ビット アプリ)。これは、DAC ライブラリをメモリにロードする必要があるためです。

于 2014-02-28T18:37:11.057 に答える