株式会社博展 - 東芝実績動画
目次:
通常のトラブルシューティングの手順では、それを切断しないことがあります。法医学的なトラブルシューティングのように、私たちはさらに先に進む必要があります。今日私はそれをするのに役立つツールについて書きます。 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の使用方法
- Dependency Walkerを使用してエラーを調査するには、次の手順を実行します。
- Dependency Walkerを開始する
- ファイルメニューで開くをクリックして問題のファイルを読み込みます。
- プロファイルの開始をクリックします。
任意のスイッチ、プログラム引数、その他のオプションを入力し、[OK]をクリックします。
Dependency Walkerは、エラーが発生する前にdwinject.dllを注入し、エラー
Dependency Walkerのダウンロード Dependency Walkerは