Windows システムで Dependency Walker を使用する方法

How Use Dependency Walker Windows Systems



Dependency Walker は、32 ビットまたは 64 ビットの Windows モジュール (exe、dll、ocx、sys など) をスキャンし、すべての依存モジュールの階層ツリーを構築する無料のユーティリティです。見つかったモジュールごとに、そのモジュールによってエクスポートされたすべての関数と、実際に他のモジュールによって呼び出されている関数が一覧表示されます。 Dependency Walker は、モジュールのロードと実行に関連するシステム エラーのトラブルシューティングにも非常に役立ちます。 Dependency Walker を使用するには、Depends.exe 実行可能ファイルを実行するだけです。デフォルトでは、プロセスで現在実行中のモジュールをスキャンします。ただし、[ファイル] メニューを使用して、システム上の他のモジュールを開くこともできます。モジュールがロードされると、Dependency Walker はすべての依存関係を列挙し、左側のツリー ビューに表示します。右側のペインには、選択したモジュールによってエクスポートされたすべての関数が表示されます。 右側のペインで関数を選択すると、Dependency Walker はその関数を呼び出すツリー ビュー内のすべてのモジュールを強調表示します。これは、特定の機能を使用しているモジュールを見つけるのに非常に役立ちます。 Dependency Walker を使用して、特定のモジュールのすべての依存関係の詳細なログを生成することもできます。このログは、別のマシンで依存関係ツリーを再現するために使用できます。ログを生成するには、[ファイル] -> [名前を付けて保存] メニュー項目を選択し、[依存関係ウォーカー ログ] 形式を選択します。



通常のトラブルシューティング手順が機能しない場合があります。トラブルシューティングのように、さらに先に進む必要があるかもしれません。今日は、これに役立つツールについて書きます。 アディクションウォーカー 関数、モジュールなどの Windows アプリケーションの依存関係を分析するツールです。すべての依存モジュール exe、dll、sys などの階層ツリーを構築します。





依存関係ウォーカーのトラブルシューティング

Dependency Walker は、32 ビットまたは 64 ビットの Windows モジュール (exe、dll、ocx、sys など) をスキャンし、すべての依存モジュールの階層ツリー図を作成する無料のユーティリティです。アプリケーション エラー、ファイル登録エラー、メモリ アクセス違反、および無効なページ エラーのトラブルシューティングに役立ちます。





画像



Dependency Walker は、特定のプログラムが読み込まれない場合や、特定の dll を指すエラーが原因でサービスが開始されない場合に特に役立ちます。このような場合、そのプログラムまたは dll を Dependency Walker にロードして、ロードされていないファイルや問題の原因となっているモジュールを確認してから修正できます。

プログラムはモジュールをロードするだけでなく、エラーの可能性も探します。ヘルプ ファイルによると、次のジョブを実行します。

  • 不足しているファイルを検出します。これらは、別のモジュールへの依存関係として必要なファイルです。この問題の症状は、「指定されたパスにダイナミック リンク ライブラリ BAR.DLL が見つかりませんでした...」というエラーです。
  • 無効なファイルを検出します。これには、Win32 または Win64 と互換性のないファイルや破損したファイルが含まれます。この問題の症状は、「アプリケーションまたは DLL BAR.EXE は有効な Windows イメージではありません」というエラーです。
  • インポート/エクスポートの不一致を検出します。モジュールによってインポートされたすべての関数が、依存モジュールから実際にエクスポートされていることを確認します。未解決のインポート関数はすべてエラーでマークされます。この問題の症状は、「ダイナミック リンク ライブラリ BAR.DLL にプロシージャ エントリ ポイント FOO が見つかりませんでした」というエラーです。
  • 循環依存エラーを検出します。これは非常にまれなエラーですが、リダイレクトされた関数で発生する可能性があります。
  • 不一致の CPU モジュール タイプを検出します。これは、あるプロセッサ用に作成されたモジュールが、別のプロセッサ用に作成されたモジュールをロードしようとした場合に発生します。
  • モジュールのチェックサムをチェックして、ビルド後に変更されたモジュールがあるかどうかを確認することにより、チェックサムの不一致を検出します。
  • 優先ベース アドレスにロードされていないモジュールを強調表示して、モジュールの競合を検出します。
  • モジュール エントリ ポイントへの呼び出しを監視し、エラーを探すことによって、モジュールの初期化の失敗を検出します。
  • Dependency Walker は、アプリケーションのランタイムをプロファイリングして、動的にロードされたモジュールとモジュールの初期化エラーを検出することもできます。上記と同じエラー チェックが動的にロードされたモジュールに適用されます。

たとえば、先日私はクライアントを手伝っていました - 彼女は Internet Explorer をダウンロードしましたが、 IEがクラッシュし続けた 、ほとんどエラーなし。私たちは最大限に活用しました 基本的なトラブルシューティング 好き アドオンの無効化 とツールバー、IEをデフォルト設定にリセットするなど。しかし、それでもクラッシュし続けました。これは、Internet Explorer が正常に動作するために必要な 1 つまたは複数のファイルが問題を引き起こしていることを意味します。このようなケースは常にトラブルシューティングが困難ですが、Dependency Walker を使用すると、依存ファイルの 1 つに問題があるかどうかを確認できます。



そこで、Dependency Walker で Internet Explorer をダウンロードしました。

画像

次に、リストを1つずつ展開しました

画像

smb1クライアントタスクをアンインストールします

次に、各モジュールを調べて、疑わしいものが見つかるかどうかを確認しました。モジュールをめくってみると、幸運にも問題を見つけることができました。

画像

IEFRAME.dll ファイルが見つからないことがわかりました。私は行って、Windows インストール DVD からファイルを置き換えました。これで問題は解決しました。 Internet Explorer がクラッシュしなくなりました。

このツールを使用して依存関係エラーの可能性を見つけるのがいかに簡単かがわかると思います。

Windows システムで Dependency Walker を使用する方法

依存関係ウォーカーを使用してバグを調査するには、次の手順に従います。

  1. 依存関係ウォーカーを実行する
  2. [ファイル] メニューの [開く] をクリックして、問題のあるファイルをダウンロードします。
  3. [表示] メニューから、[プロファイリングの開始] をクリックします。 [プロファイル モジュール] ダイアログ ボックスが表示されます。
  4. スイッチ、プログラム引数、およびその他の必要なオプションを入力し、[OK] をクリックします。

Dependency Walker は、エラーが発生する前に dwinject.dll を挿入し、エラー時に発生したイベントをログに記録します。

Dependency Walker について

PC修復ツールをダウンロードして、Windowsエラーをすばやく見つけて自動的に修正します

Dependency Walker は次の場所からダウンロードできます。 ここ .

人気の投稿