Windows

Dependency Walker - Verwendung - Tutorial

AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka

AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka

Inhaltsverzeichnis:

Anonim

Manchmal werden normale Fehlerbehebungsschritte es nicht schneiden. Wir müssen möglicherweise darüber hinaus gehen - mehr wie forensische Fehlersuche. Heute werde ich über ein Tool schreiben, das uns dabei helfen wird. Dependency Walker ist ein Werkzeug, um die Abhängigkeiten einer Windows-Anwendung zu analysieren - wie Funktionen, Module, etc. Es baut eine hierarchische Struktur aller abhängigen Module einer exe, dll, sys usw. auf.

Dependency Walker

Dependency Walker kann Sie bei der Behandlung von Anwendungsfehlern, Dateiregistrierungsfehlern, Speicherzugriffsverletzungen und Fehlern bei ungültigen Seiten unterstützen.

Dependency Walker wird besonders hilfreich, wenn ein bestimmtes Programm nicht geladen wird oder ein Dienst fehlschlägt um mit einem Fehler zu beginnen, der auf eine bestimmte DLL zeigt. In solchen Fällen können Sie das Programm oder die DLL in Dependency Walker laden, um zu sehen, welche Datei nicht geladen werden kann oder welches Modul das Problem verursacht - und dann das Problem beheben.

Das Programm lädt nicht nur die Module, sondern auch sucht nach möglichen Fehlern. Gemäß der Hilfedatei führt es die folgenden Aufgaben aus:

  • Erkennt fehlende Dateien. Dies sind Dateien, die als Abhängigkeit von einem anderen Modul benötigt werden. Ein Symptom dieses Problems ist die Fehlermeldung "Die dynamische Link-Bibliothek BAR.DLL konnte nicht im angegebenen Pfad gefunden werden …" Fehler.
  • Erkennt ungültige Dateien. Dies schließt Dateien ein, die nicht mit Win32 oder Win64 kompatibel sind, und Dateien, die beschädigt sind. Ein Symptom dieses Problems ist der Fehler "Die Anwendung oder DLL BAR.EXE ist kein gültiges Windows-Abbild".
  • Erkennt Import / Export-Fehler. Überprüft, dass alle von einem Modul importierten Funktionen tatsächlich aus den abhängigen Modulen exportiert werden. Alle nicht aufgelösten Importfunktionen sind mit einem Fehler gekennzeichnet. Ein Symptom für dieses Problem ist die Fehlermeldung "Der Prozedur-Einstiegspunkt FOO konnte nicht im Fehlercode der dynamischen Link-Bibliothek gefunden werden. BAR.LL".
  • Erkennt zyklische Abhängigkeitsfehler. Dies ist ein sehr seltener Fehler, kann jedoch bei weitergeleiteten Funktionen auftreten.
  • Erkennt nicht übereinstimmende CPU-Typen von Modulen. Dies tritt auf, wenn ein für eine CPU erstelltes Modul versucht, ein für eine andere CPU erstelltes Modul zu laden.
  • Erkennt Prüfsummeninkonsistenzen, indem es Modulprüfsummen überprüft, um festzustellen, ob Module nach ihrer Erstellung geändert wurden.
  • Erkennt Modulkollisionen durch Markieren Sie alle Module, die nicht an ihrer bevorzugten Basisadresse geladen werden können.
  • Erkennt Modulinitialisierungsfehler, indem Aufrufe an Moduleintrittspunkte verfolgt und nach Fehlern gesucht werden.
  • Dependency Walker kann auch ein Laufzeitprofil Ihrer Anwendung zur Erkennung ausführen dynamisch geladene Module und Modulinitialisierungsfehler. Die gleiche Fehlerüberprüfung von oben gilt auch für dynamisch geladene Module.

Ich habe beispielsweise einem Kunden kürzlich geholfen - er hat Internet Explorer geladen, aber IE stürzte immer wieder ab, ohne irgendwelche spezifischen Fehler. Wir hatten die meisten grundlegenden Fehlerbehebungen wie das Deaktivieren von Add-Ons und Symbolleisten, das Zurücksetzen des IE auf die Standardeinstellungen usw. durchgeführt. Aber es stürzte immer noch ab. Dies führte dazu, dass eine oder mehrere Dateien, die für die ordnungsgemäße Ausführung von Internet Explorer erforderlich waren, ein Problem verursachten. Es ist immer schwierig, solche Fälle zu behandeln, aber mit Dependency Walker können wir sehen, ob etwas mit einer der abhängigen Dateien nicht stimmt.

Also habe ich Internet Explorer in Dependency Walker geladen.

Als nächstes habe ich die Liste einzeln erweitert

Dann ging ich durch jedes der Module, um zu sehen, ob ich dort etwas Verdächtiges finden konnte. Ich scrollte durch das Modul und hatte das Glück, das Problem zu finden.

Ich fand, dass die IEFRAME.dll-Datei fehlte. Also ging ich und ersetzte die Datei von der Windows-Installations-DVD. Das hat das Problem gelöst. Jetzt stürzt Internet Explorer nicht mehr ab.

Ich hoffe, Ihnen wird es zeigen, wie einfach es ist, das Tool zu benutzen, um mögliche Abhängigkeitsfehler zu finden.

Verwendung von Dependency Walker

Um Dependency Walker zu verwenden, um Fehler zu untersuchen, können Sie die folgenden Schritte ausführen:

  1. Starten Sie Dependency Walker
  2. Klicken Sie im Menü Datei auf Öffnen, um die Problemdatei
  3. zu laden. Klicken Sie auf Profilerstellung starten. Das Dialogfeld "Profilmodul" wird angezeigt
  4. Geben Sie beliebige Schalter, Programmargumente und andere Optionen ein und klicken Sie dann auf OK.

Dependency Walker injiziert dwinject.dll, bevor der Fehler auftritt, und protokolliert die Ereignisse, die zu dem Zeitpunkt stattfinden der Fehler.

Dependency Walker Download

Sie können Dependency Walker hier von herunterladen.