Skip to main content

Dependency Walker - Hvordan bruke - Tutorial

Dependency Walker - Hvordan bruke - Tutorial

Geoffrey Carr

Noen ganger vil normalt feilsøkingstrinn bare ikke kutte det. Vi må kanskje gå utover - mer som rettsmedisinsk feilsøking. I dag skal jeg skrive om et verktøy som vil hjelpe oss med å gjøre det. Dependency Walker er et verktøy for å analysere avhengighetene til et Windows-program - som funksjoner, moduler, etc. Det bygger et hierarkisk tre av alle de avhengige modulene i en exe, dll, sys, etc.

Dependency Walker

Dependency Walker kan hjelpe deg med feilsøking av programfeil, filregistreringsfeil, brudd på minnetilgang og ugyldige sidefeil.

Dependency Walker blir spesielt nyttig hvis et bestemt program av deg ikke lastes, eller en tjeneste mislykkes med å starte med en feil som peker på en bestemt dll. I slike tilfeller kan du laste det programmet eller dll i Dependency Walker, for å se hvilken fil som ikke laster inn eller hvilken modul som forårsaker problemet - og deretter fikse det.

Programmet laster ikke bare modulene, men det søker også etter mulige feil. Ifølge hjelpefilen utfører den følgende jobber:

  • Registrerer manglende filer. Dette er filer som kreves som en avhengighet av en annen modul. Et symptom på dette problemet er "Den dynamiske lenkebiblioteket BAR.DLL ble ikke funnet i den angitte banen ..." -feilen.
  • Registrerer ugyldige filer. Dette inkluderer filer som ikke er kompatible med Win32 eller Win64 og filer som er korrupte. Kkk anykkkikkkkk notik any anyk anykkkkzk notik not notk notkikk not not notkik notikk any not any not anyk not not any anyikik notikikk not notik anykik
  • Oppdager feil og feil i import / eksport. Verifiserer at alle funksjoner som importeres av en modul, faktisk eksporteres fra de avhengige modulene. Alle uløste importfunksjoner er flagget med en feil. Et symptom på dette problemet er "Prosedyreinngangspunktet FOO kunne ikke være plassert i den dynamiske lenkebiblioteket BAR.DLL" -feil.
  • Registrerer sirkulære avhengighetsfeil. Dette er en veldig sjelden feil, men kan forekomme med videresendte funksjoner.
  • Registrerer feilparametere CPU typer moduler. Ik not notik any anykikik anyy not notik omik not anyk not not any not any not notikkik any anyingkkik anyik any not notik not any not any any not not anyk anyikikkk any anyk anyik notikikikk anyikk any any any anyk not anyik notmkikikikikikkik not
  • Registrerer sjekksum uoverensstemmelser ved å verifisere modulens kontrollsummer for å se om moduler har blitt modifisert etter at de ble bygget.
  • Registrerer modulkollisjoner ved å markere noen moduler som ikke laster inn på deres foretrukne baseadresse.
  • Oppdager feil på moduleringsinitialisering ved å spore samtaler til modulinngangspunkter og lete etter feil.
  • Dependency Walker kan også utføre en run-time-profil for søknaden din for å oppdage dynamisk lastede moduler og modulinitialiseringsfeil. Den samme feilkontrollen fra ovenfor gjelder også dynamisk lastede moduler.

For eksempel hjelper jeg en klient den andre dagen - hun lastet inn Internet Explorer, men IE holdt krasj uten noen spesifikke feil. Vi hadde gjort det meste av grunnleggende feilsøking som deaktivere tillegg og verktøylinjer, tilbakestille IE til standardinnstilling osv. Men det fortsatte å krasje. Dette innebar at en eller flere filer som kreves for at Internet Explorer skulle kunne kjøre riktig, oppsto et problem. Det er alltid vanskelig å feilsøke slike tilfeller, men med Dependency Walker kan vi se om noe er galt med en av den avhengige filen.

Så jeg lastet Internet Explorer i Dependency Walker.

Jeg utvidet listen en etter en

Så gikk jeg gjennom hver modul, for å se om jeg kunne finne noe mistenkelig der. Jeg rullet gjennom modulen og var heldig nok til å finne problemet.

Jeg fant ut at filen IEFRAME.dll manglet. Så jeg gikk og erstattet filen fra Windows Installasjons DVD. Det løste problemet. Nå krasjet ikke Internet Explorer.

Kik notkikikikikikk notik not notk not notk not not notk not notik anyk not notik not not notk not notikkik any any notk not notik not any notk not any notk not anyik not any any not -ik any not not not anyw any not-not not notik notikkk notkikkik not any not anyk not any any any notk anyver anyk notik anyikk not any notik any other not any pik not

Hvordan bruke Dependency Walker

For å bruke Dependency Walker til å undersøke feil, kan du følge disse trinnene:

  1. Start Dependency Walker
  2. Klikk Åpne på Arkiv-menyen for å laste problemfilen
  3. På Vis-menyen, klikk på Start profilering. Dialogboksen Profilmodul vises
  4. Skriv inn eventuelle brytere, programargumenter, andre alternativer du vil ha, og klikk deretter OK.

Dependency Walker vil injisere dwinject.dll før feilen oppstår, og vil logge hendelsene som finner sted på tidspunktet for feilen.

Dependency Walker nedlasting

Du kan laste ned Dependency Walker fra her.

Link
Plus
Send
Send
Pin