Windows

依存性ウォーカー - 使用方法 - チュートリアル

株式会社博展 - 東芝実績動画

株式会社博展 - 東芝実績動画

目次:

Anonim

通常のトラブルシューティングの手順では、それを切断しないことがあります。法医学的なトラブルシューティングのように、私たちはさらに先に進む必要があります。今日私はそれをするのに役立つツールについて書きます。 Dependency Walker は、関数、モジュールなどのWindowsアプリケーションの依存関係を分析するツールです。exe、dll、sysなどのすべての依存モジュールの階層ツリーを構築します。

Dependency Walker

Dependency Walkerは、アプリケーションエラー、ファイル登録エラー、メモリアクセス違反、およびページ違反のトラブルシューティングに役立ちます。

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

プログラムはモジュールをロードするだけでなく、潜在的なエラーをスキャンします。ヘルプファイルに従って、次のジョブを実行します。

  • 不足しているファイルを検出します。これらは、別のモジュールへの依存として必要なファイルです。この問題の症状は、「ダイナミックリンクライブラリBAR.DLLが指定されたパスに見つかりません…」というエラーです。
  • 無効なファイルが検出されました。これには、Win32またはWin64に準拠していないファイルと破損しているファイルが含まれます。この問題の症状は、「アプリケーションまたはDLL BAR.EXEが有効なWindowsイメージではありません」というエラーです。
  • インポート/エクスポートの不一致を検出します。モジュールによってインポートされたすべての関数が実際に依存モジュールからエクスポートされることを検証します。すべての未解決のインポート関数にはエラーが表示されます。この問題の症状は、「プロシージャのエントリポイントFOOをダイナミックリンクライブラリBAR.DLLに配置できませんでした」というエラーです。
  • 循環依存エラーを検出します。これは非常にまれなエラーですが、転送された機能で発生する可能性があります。
  • 不一致のCPUタイプのモジュールを検出します。これは、1つのCPU用にビルドされたモジュールが異なるCPU用にビルドされたモジュールをロードしようとした場合に発生します。
  • モジュールチェックサムを検証してチェックサムの不一致を検出し、
  • モジュールの初期化失敗をモジュールエントリポイントへの呼び出しを追跡し、エラーを探して検出します。
  • Dependency Walkerはアプリケーションの実行時プロファイルを実行して、動的にロードされたモジュールとモジュール初期化の失敗先ほどと同じエラーチェックが動的にロードされたモジュールにも適用されます。
  • たとえば、先日クライアントを支援していましたが、Internet Explorerをロードしていましたが、IEは何のエラーもなくクラッシュし続けました。アドオンやツールバーを無効にする、IEをデフォルト設定にリセットするなどの基本的なトラブルシューティングのほとんどを行っていましたが、それでもクラッシュしました。これは、Internet Explorerが正常に動作するために必要な1つ以上のファイルが問題を引き起こしていたことを意味します。

Dependency WalkerでInternet Explorerをロードしました。

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

そして、各モジュールを調べて、疑わしいものがあるかどうかを確認しました。

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

これにより、ツールを使用して依存関係のエラーを見つけるのがどれほど簡単かを教えてください。

Dependency Walkerの使用方法

  1. Dependency Walkerを使用してエラーを調査するには、次の手順を実行します。
  2. Dependency Walkerを開始する
  3. ファイルメニューで開くをクリックして問題のファイルを読み込みます。
  4. プロファイルの開始をクリックします。

任意のスイッチ、プログラム引数、その他のオプションを入力し、[OK]をクリックします。

Dependency Walkerは、エラーが発生する前にdwinject.dllを注入し、エラー

Dependency Walkerのダウンロード Dependency Walkerは