Windows

Dependency Walker - Hoe te gebruiken - Zelfstudie

Dependency Walker (Hatalı DLL Bulucu)

Dependency Walker (Hatalı DLL Bulucu)

Inhoudsopgave:

Anonim

Soms worden de normale stappen voor probleemoplossing gewoon niet onderbroken. We moeten misschien nog verder gaan - meer als forensisch probleemoplossing. Vandaag zal ik schrijven over een tool die ons daarbij helpt. Afhankelijkheid Walker is een hulpmiddel om de afhankelijkheden van een Windows-toepassing te analyseren - zoals functies, modules, enz. Het bouwt een hiërarchische boom op van alle afhankelijke modules van een exe, dll, sys, etc.

Dependency Walker

Dependency Walker kan u helpen bij het oplossen van toepassingsfouten, bestandsregistratiefouten, geheugentoegangsovertredingen en ongeldige paginafouten.

Dependency Walker wordt vooral nuttig als een specifiek programma van u niet wordt geladen of als een service niet werkt om te beginnen met een fout die verwijst naar een specifieke dll. In dergelijke gevallen kunt u dat programma of dll in Dependency Walker laden om te zien welk bestand niet wordt geladen of door welke module het probleem wordt veroorzaakt - en het vervolgens repareren.

Het programma laadt niet alleen de modules, maar ook scant op mogelijke fouten. Volgens het Help-bestand voert het de volgende taken uit:

  • Detecteert ontbrekende bestanden. Dit zijn bestanden die nodig zijn als afhankelijkheid van een andere module. Een symptoom van dit probleem is de "De dynamic link library BAR.DLL kon niet worden gevonden in het opgegeven pad …" fout.
  • Detecteert ongeldige bestanden. Dit omvat bestanden die niet compatibel zijn met Win32 of Win64 en bestanden die corrupt zijn. Een symptoom van dit probleem is de fout `De toepassing of DLL BAR.EXE is geen geldige Windows-afbeelding`.
  • Detecteert niet-overeenkomende invoer / uitvoer. Controleert of alle functies die door een module zijn geïmporteerd daadwerkelijk worden geëxporteerd vanuit de afhankelijke modules. Alle niet-opgeloste importfuncties zijn gemarkeerd met een fout. Een symptoom van dit probleem is het "De ingangspunt van de procedure FOO kon niet worden gevonden in de BAR.DLL van de dynamische koppelingsbibliotheek".
  • Detecteert fouten in circulaire afhankelijkheid. Dit is een zeer zeldzame fout, maar kan optreden bij doorgestuurde functies.
  • Detecteert niet-overeenkomende CPU-typen modules. Dit gebeurt als een module die is gebouwd voor één CPU, een module probeert te laden die is gebouwd voor een andere CPU.
  • Detecteert inconsistenties in controlesommen door modulecontrolesommen te verifiëren om te zien of modules zijn gewijzigd nadat ze zijn gebouwd.
  • Detecteert modulebotsingen door het markeren van modules die niet laden op het gewenste basisadres.
  • Detecteert fouten bij het initialiseren van modules door oproepen naar module-ingangen te volgen en fouten te zoeken.
  • Dependency Walker kan ook een run-time profiel van uw toepassing uitvoeren om te detecteren dynamisch geladen modules en module-initialisatiefouten. Dezelfde foutcontrole van hierboven is ook van toepassing op dynamisch geladen modules.

Ik was bijvoorbeeld een klant onlangs aan het helpen - ze was Internet Explorer aan het laden, maar IE bleef crashen, zonder specifieke fouten. We hadden de meeste eenvoudige probleemoplossing gedaan, zoals het uitschakelen van add-ons en werkbalken, het opnieuw instellen van IE naar de standaardinstelling, enz. Maar het bleef maar crashen. Dit betekende dat een of meer bestanden die nodig waren om Internet Explorer correct te laten werken, een probleem vormden. Het is altijd moeilijk om dergelijke gevallen op te lossen, maar met Dependency Walker kunnen we zien of er iets mis is met een van het afhankelijke bestand.

Dus heb ik Internet Explorer in Dependency Walker geladen.

Vervolgens heb ik de lijst een voor een uitgebreid

Daarna ging ik door elk van de modules om te zien of ik daar iets verdachts kon vinden. Ik scrolde door de module en had het geluk om het probleem te vinden.

Ik ontdekte dat het bestand IEFRAME.dll ontbrak. Dus ik ging en verving het bestand van de Windows installatie-dvd. Dat loste het probleem op. Nu is Internet Explorer niet meer gecrasht.

Ik hoop dat dit u zal vertellen hoe gemakkelijk het is om de tool te gebruiken om mogelijke afhankelijkheidsfouten te achterhalen.

Dependency Walker

gebruiken Om Dependency Walker te gebruiken om fouten te onderzoeken, kunt u de volgende stappen volgen:

  1. Start Dependency Walker
  2. Klik op Openen in het menu Bestand om het probleembestand te laden
  3. In het menu Beeld, klik op Profilering starten. Het dialoogvenster Profielmodule verschijnt
  4. Typ eventuele schakelopties, programmaregels, andere gewenste opties en klik vervolgens op OK.

Dependency Walker injecteert dwinject.dll voordat de fout optreedt en logt de gebeurtenissen die plaatsvinden op het moment de fout.

Afhankelijkheid Walker downloaden

U kunt Dependency Walker hier downloaden van .