Ponekad se normalni koraci za rješavanje problema jednostavno neće izrezati. Možda ćemo morati ići dalje i više - više kao forenzično rješavanje problema. Danas ću pisati o alatu koji će nam pomoći u tome. Ovisnost Walker alat je za analizu ovisnosti aplikacije sustava Windows - kao što su funkcije, moduli itd. Izrađuje hijerarhijsko stablo svih ovisnih modula exe, dll, sys, itd.
Ovisnost Walker
Dependency Walker vam može pomoći pri otklanjanju pogrešaka prijave, pogrešaka pri registraciji datoteke, kršenja pristupa memoriji i nevažećih pogrešaka stranica.
Program ne samo da učitava module, već i skenira potencijalne pogreške. Prema datoteci pomoći, izvršava sljedeće zadatke:
- Otkriva datoteke koje nedostaju. To su datoteke koje su potrebne kao ovisnost o drugom modulu. Simptom ovog problema je pogreška "Biblioteka dinamičke veze BAR.DLL nije pronađena na navedenoj stazi …".
- Otkriva nevažeće datoteke. To uključuje datoteke koje nisu kompatibilne sa Win32 ili Win64 i datoteke koje su oštećene. Simptom tog problema je pogreška "Aplikacija ili DLL BAR.EXE nije važeća slika sustava Windows".
- Otkriva neusklađenost uvoza / izvoza. Provjerava se da sve funkcije uvezene od strane modula zapravo izvoze iz ovisnih modula. Sve neriješene funkcije uvoza označene su pogreškom. Simptom ovog problema je "FOO ulazne točke procedure nije moguće pronaći u knjižnici dinamičkog povezivanja BAR.DLL".
- Otkriva pogreške kružnih ovisnosti. Ovo je vrlo rijetka pogreška, ali se može dogoditi s proslijeđenim funkcijama.
- Otkriva nepodudarnu vrstu modula CPU-a. To se događa ako modul izgrađen za jedan CPU pokuša učitati modul izgrađen za drugu CPU.
- Otkriva nedosljednosti kontrolnog zbroja provjerom kontrolnih zbrojeva modula da biste provjerili jesu li moduli promijenjeni nakon što su izgrađeni.
- Otkriva sudare modula označavanjem modula koji se ne učitavaju na željenoj osnovnoj adresi.
- Otkriva kvarove za inicijalizaciju modula praćenjem poziva na ulazne točke modula i tražeći pogreške.
- Dependency Walker također može izvršiti vremenski profil vašeg programa za otkrivanje dinamički učitanih modula i kvarova inicijalizacije modula. Ista provjera pogreške odozgo odnosi se i na dinamički učitane module.
Na primjer, pomagao sam klijentu neki dan - ona je učitavala Internet Explorer, ali IE je nastavio padati, bez ikakvih specifičnih pogrešaka. Učinili smo većinu osnovnih problema kao što su onemogućavanje dodataka i alatnih traka, poništavanje IE na zadanu postavku, ali još uvijek je zadržao pad. To je značilo da jedna ili više datoteka potrebnih za Internet Explorer radi ispravno je stvaranje problema. Uvijek je teško otkloniti takve slučajeve, ali s Dependency Walkerom, možemo vidjeti je li nešto u redu s jednim od ovisnih datoteka.
Zato sam učitao Internet Explorer u Dependency Walkeru.
Nadam se da će vam ovo reći kako je jednostavno koristiti alat da biste otkrili moguće pogreške ovisnosti.
Kako koristiti Dependency Walker
Da biste upotrebljavali Dependency Walker da biste istražili pogreške, slijedite ove korake:
- Pokreni ovisnost Walker
- Kliknite Otvori na izborniku Datoteka da biste učitali datoteku problema
- Na izborniku Prikaz kliknite Start profiliranje. Pojavljuje se dijaloški okvir Modul profila
- Upišite sve sklopke, argumente programa, ostale željene opcije, a zatim kliknite U redu.
Dependency Walker će ubrizgati dwinject.dll prije nego se pojavi greška i prijaviti događaje koji se događaju u vrijeme pogreške.
Preuzmite Dependency Walker
Možete preuzeti Dependency Walker od ovdje.