troushoo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

.NETの64bit OS上の32bitプロセスのダンプの取得方法

.NETの場合、64bit OS上の32bitプロセスは、32bitダンプを作らないとVisual Studio・WinDbgともにうまくダンプが読めません。今回は64bit OS上の32bitダンプの作り方を紹介します。

64bit OS上の32bitプロセスを64bitダンプを作るとどうなる?
[Visual Studio 2010 RTM]
ダンプを開こうとして、"混合でデバッグ"をクリックすると以下のエラーが出ます。
”マネージミニダンプデバッグに必要なファイルが見つからないか、またはダウンロードできません。”

[Visual Studio 2010 SP1]
ダンプを開くと、Error Informationのところに、"You cannot 64-bit dump of a 32-bit process, you must collect a 32-bit dump of a 32-bit process."とエラーがでています。

[WinDbg]
1. .loadbyを使用したsosの読み込みに、”The call to LoadLibrary failed.”と失敗します。

2. .loadを使用したsosは成功しますが、その後のコマンドで"Failed to load data access DLL. 0x80004005"とエラーが発生します。

なぜ、正しくダンプが読めない?
デバッガーが使用しているsos.dllといったモジュール類が、ダンプから正しくデータを読むことができないからです。

では、どうやってダンプをとる?
adplusやDebugDiag、Procdump等が有名どころですが、今回は手軽にダンプをとれるタスクマネージャーを使用したダンプの取得方法を紹介します。
方法はとても簡単です。通常のタスクマネージャーの代わりに、C:\Windows\SysWOW64\taskmgr.exeを起動して、ダンプを取得するだけです。

補足
・.NETの32bitプロセスのダンプを見るには、64bitのWinDbgではなく、32bitのWinDbgが必要です。(同様に.NETの64bitプロセスのダンプを見るには64bitのWinDbgが必要です。)


  1. 2011/10/02(日) 15:06:00|
  2. ツール
  3. | トラックバック:0
  4. | コメント:0
<<DebugDiag v1.2を利用した64bit OS上の32bitダンプの取得方法 | ホーム | Visual Studioでカーネルデバッグ (2)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/4-2c4c56ef
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (24)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。