2011-08-02 10 views
1

ダンプファイルとwindbgを使用して64ビットマシン上で実行されている32ビットの.netプロセスをデバッグしようとしています。ダンプファイルをロードすると、警告が表示されますWARNING: MSVCR100_CLR0400 overlaps clrSOSを使用してwindbgでモジュールの重複を回避するにはどうすればよいですか?

wow64extsをロードし、32ビットモードに切り替えた後、私はSOSをロードし、次のエラーを取得:

The version of SOS does not match the version of CLR you are debugging. Please 
load the matching version of SOS for the version of CLR you are debugging. 
CLR Version: 10.0.30319.1 
SOS Version: 4.0.30319.235 
CLRDLL: Loaded DLL C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll 

lmvはCLR.dllのバージョンは事実4.0.30319.235が、MSVCR100_CLR0400であることを私に伝えます。 dllのバージョンは10.0.30319.1です。ロードされたモジュールのアドレスを見てみると

lmと範囲モジュールのオーバーラップを示しています

726e0000 727b1000 MSVCR100_CLR0400 (deferred)    
727a0000 72e10000 clr  (deferred) 

私の結論は、SOSが混乱すると、モジュールMSVCR100_CLR0400のヘッダの代わりに、CLRを発見されていることです。

どのようにこの問題を解決するために私はこのダンプをデバッグするためにSOSを使用できますか?

答えて

1
+0

さらに重要なのは、私は、32ビット・ダンプではなく、32ビットプロセスの64ビットダンプをキャプチャする必要がありました。このブログ記事はどのように説明していますか? –

+0

'!wow32exts.sw'は、32ビットプロセスの64ビットダンプを読み込めるようにしますが、すべてのSOS関数が動作するわけではありません(たとえば、'!eestack -EE'はうまくいきますが '!clrstack'はありません) –

関連する問題