Dependency Walker - Ein erweitertes Tool zur Fehlerbehebung

  • Yurii Figuriy
  • 0
  • 4006
  • 353

Manchmal reichen normale Schritte zur Fehlerbehebung einfach nicht aus. Möglicherweise müssen wir darüber hinaus gehen - eher wie forensische Fehlerbehebung. Heute werde ich über ein Tool schreiben, das uns dabei helfen wird.  Abhängigkeits-Walker ist ein Tool zum Analysieren der Abhängigkeiten einer Windows-Anwendung - wie Funktionen, Module usw. Es erstellt einen hierarchischen Baum aller abhängigen Module einer exe, dll, sys usw..

Abhängigkeits-Walker

Dependency Walker kann Ihnen bei der Fehlerbehebung bei Anwendungsfehlern, Dateiregistrierungsfehlern, Verstößen gegen den Speicherzugriff und ungültigen Seitenfehlern helfen.

Dependency Walker ist besonders hilfreich, wenn ein bestimmtes Programm von Ihnen nicht geladen wird oder ein Dienst nicht mit einem Fehler gestartet werden kann, der auf eine bestimmte DLL verweist. In solchen Fällen können Sie dieses Programm oder diese DLL in Dependency Walker laden, um festzustellen, welche Datei nicht geladen werden kann oder welches Modul das Problem verursacht - und es dann beheben.

Das Programm lädt nicht nur die Module, sondern sucht auch nach möglichen Fehlern. Gemäß der Hilfedatei werden die folgenden Jobs ausgeführt:

  • Erkennt fehlende Dateien. Dies sind Dateien, die als Abhängigkeit von einem anderen Modul benötigt werden. Ein Symptom für dieses Problem ist der Fehler "Die dynamische Verbindungsbibliothek BAR.DLL wurde im angegebenen Pfad nicht gefunden ...".
  • Erkennt ungültige Dateien. Dies umfasst Dateien, die nicht Win32- oder Win64-kompatibel sind, und Dateien, die beschädigt sind. Ein Symptom für dieses Problem ist der Fehler "Die Anwendung oder DLL BAR.EXE ist kein gültiges Windows-Image".
  • Erkennt Fehlanpassungen beim Import / Export. Überprüft, ob 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 der Fehler "Der Prozedureinstiegspunkt FOO konnte nicht in der BAR.DLL der dynamischen Verbindungsbibliothek gefunden werden".
  • Erkennt zirkuläre Abhängigkeitsfehler. Dies ist ein sehr seltener Fehler, kann jedoch bei weitergeleiteten Funktionen auftreten.
  • Erkennt nicht übereinstimmende CPU-Modultypen. 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 Modulprüfsummen überprüft werden, um festzustellen, ob Module nach ihrer Erstellung geändert wurden.
  • Erkennt Modulkollisionen, indem alle Module hervorgehoben werden, die nicht an ihrer bevorzugten Basisadresse geladen werden können.
  • Erkennt Modulinitialisierungsfehler, indem Anrufe an Moduleintrittspunkte verfolgt und nach Fehlern gesucht werden.
  • Dependency Walker kann auch ein Laufzeitprofil Ihrer Anwendung erstellen, um dynamisch geladene Module und Fehler bei der Modulinitialisierung zu erkennen. Die gleiche Fehlerprüfung von oben gilt auch für dynamisch geladene Module.

Zum Beispiel habe ich neulich einem Kunden geholfen - sie hat den Internet Explorer geladen, aber der IE stürzte ohne bestimmte Fehler ab. Wir hatten die meisten grundlegenden Fehlerbehebungsmaßnahmen wie das Deaktivieren von Add-Ons und Symbolleisten, das Zurücksetzen des IE auf die Standardeinstellungen usw. durchgeführt. Trotzdem stürzte es immer wieder ab. Dies bedeutete, 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 beheben, aber mit Dependency Walker können wir feststellen, ob mit einer der abhängigen Dateien etwas nicht stimmt.

Also habe ich Internet Explorer in Dependency Walker geladen.

Als nächstes erweiterte ich die Liste nacheinander

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

Ich habe festgestellt, dass die Datei IEFRAME.dll fehlt. Also habe ich die Datei von der Windows-Installations-DVD ersetzt. Das hat das Problem gelöst. Jetzt stürzte der Internet Explorer nicht mehr ab.

Ich hoffe, dies zeigt Ihnen, wie einfach es ist, mit dem Tool mögliche Abhängigkeitsfehler herauszufinden.

Verwendung von Dependency Walker

Gehen Sie folgendermaßen vor, um mit Dependency Walker Fehler zu untersuchen:

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

Dependency Walker injiziert dwinject.dll, bevor der Fehler auftritt, und protokolliert die Ereignisse, die zum Zeitpunkt des Fehlers aufgetreten sind.

Dependency Walker herunterladen

Laden Sie das PC Repair Tool herunter, um Windows-Fehler schnell automatisch zu finden und zu beheben

Sie können Dependency Walker von herunterladen Hier.




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

Die nützlichsten Rezensionen, Neuigkeiten und Anleitungen aus der Welt der Technologie. Viele Informationen, die Sie brauchen
Artikel über neue Technologien. Kurz und klar über die wichtigsten Dinge in der modernen Welt. Nützliche Anleitungen und Neuigkeiten, detaillierte Bewertungen und Erklärungen