24

Windows 7 x64で、最新バージョンの Dependency Walker (2.2.6000) を使用してx86実行可能ファイルをプロファイリングしようとすると、プロファイリング プロセスが常に特定の時点でハングします。ほとんどの場合、最後にロードされた DLL はc:\windows\syswow64\URLMON.DLLであるため、その DLL 内の何かが問題を引き起こしているようです。Windows 7 x86で同じ実行可能ファイルをプロファイリングすると、問題なく動作します。

私はかなり広範囲にグーグルで検索しましたが、問題の解決策を思いつくことができませんでした. 私が見つけた 1 つの提案は、IE 8 または IE 9 をアンインストールして IE 7 に置き換えることでしたが、これは実際には役に立ちません。私が観察できる唯一の影響は、IE 7 ではプロファイリング プロセスが別の DLL でハングすることです (iertutil.dll私の記憶が正しければ、システムのsyswow64フォルダーからも)。

私の質問は、x64 Windows 7 で x86 アプリケーションをプロファイリングするために Dependency Walker を取得するにはどうすればよいですか? もちろん、そもそもなぜ問題が存在するのかを知ることもいいでしょう:-)

いくつかの最終的なメモ:

  • x86 実行可能ファイルのプロファイリングを行うため、x86 バージョンの Dependency Walker を使用しています。
  • Dependency Walker を管理者として実行しても役に立たない
  • 「WOW64 で失敗する可能性がある」とマークされているすべてのプロファイリング オプションが無効になっています。
  • 問題を再現するためのテストケースとして現在使用している実行可能ファイルは、インストールを必要としない単純な .exe であるため、Sumatra PDF ビューアー (ダウンロード リンク) です。
4

4 に答える 4

18

@Stone Free のコメントに基づいて指示を更新

必要なダウンロード リンクが次のように変更されました。

https://www.microsoft.com/en-us/download/details.aspx?id=42273

2. WDK 10 のインストールセクションに移動し、ダウンロードを選択します。

ステージ 2の Wdk セットアップ ( wdksetup.exe ) を見つけて実行し、インストールではなくダウンロード オプションを選択します。

完了したら、DownloadLocation\Windows Kits\10\WDK\Installers>"Windows Driver Kit-x86_en-us.msi" を見つけて実行します

Dependency Walker は次の場所にあります。

  • C:\Program Files (x86)\Windows Kits\10\Tools\x64\depends.exe 64ビット版
  • C:\Program Files (x86)\Windows Kits\10\Tools\x86\depends.exe 32ビット版

2015-10-29 にビルドされた Dependency Walker バージョン 2.2.10011 はどれですか x86 バージョン

Windows イメージ ( dll、exe など) のプラットフォーム (x86|x64|ia64)と 適切なバージョンの depends.exe を起動して、その依存関係を表示します。主な目的は、コンテキスト メニュー エントリで使用して、イメージの依存関係を簡単に表示することです。

于 2016-03-17T00:40:09.950 に答える
3

私は同じ問題に遭遇し、最新バージョンの Dependency Walker で修正されていることを発見しました。2.2.6000 と 2.2.8288 を比較したところ、前者には問題がありますが、後者には問題がありません。ただし、最新バージョンを入手するには、おそらく Windows 8 WDK が一般にリリースされるまで待つ必要があります。

于 2012-03-15T21:15:31.463 に答える