Niekedy sa bežné kroky na riešenie problémov jednoducho neodstránia. Možno budeme musieť ísť nad a za - viac ako forenzné riešenie problémov. Dnes napíšem o nástroji, ktorý nám pomôže urobiť to. Dependency Walker je nástroj na analýzu závislosti aplikácií Windows, ako sú funkcie, moduly atď. Vytvára hierarchický strom všetkých závislých modulov exe, dll, sys atď.
Dependency Walker
Dependency Walker vám môže pomôcť pri odstraňovaní problémov s aplikáciami, chybami pri registrácii súborov, porušením prístupu k pamäti a neplatnými chybami stránok.
Program nie je iba načítanie modulov, ale tiež kontroluje možné chyby. Podľa súboru Pomocníka vykonáva tieto úlohy:
- Zisťuje chýbajúce súbory. Sú to súbory, ktoré sú potrebné ako závislosť na inom module. Príznakom tohto problému je chyba "Knižnica dynamického prepojenia BAR.DLL sa nepodarilo nájsť v zadanej ceste …" chyba.
- Zistí neplatné súbory. Patria sem aj súbory, ktoré nie sú kompatibilné s Win32 alebo Win64 a sú poškodené. Príznakom tohto problému je chyba "Aplikácia alebo DLL BAR.EXE nie je platný obraz systému Windows".
- Rozpozná nesprávne importy / exporty. Overuje, či sú všetky funkcie importované modulom skutočne exportované zo závislých modulov. Všetky nevyriešené funkcie importu sú označené chybou. Symptómom tohto problému je "Vstupný bod procedúry FOO nemohol byť umiestnený v knižnici dynamickej linky BAR.DLL" chyba.
- Zisťuje chyby kruhovou závislosťou. Toto je veľmi zriedkavá chyba, ale môže sa vyskytnúť pri presmerovaných funkciách.
- Zisťuje nesprávne typy modulov CPU. K tomu dochádza, ak sa modul postavený pre jeden procesor pokúša načítať modul postavený pre iný procesor.
- Zistí nekonzistenciu kontrolného súčtu overovaním kontrolných súčtov modulov, aby zistili, či boli moduly po ich zostavení upravené.
- Deteguje kolízie modulov zvýraznením všetkých modulov, ktoré sa nedajú načítať na ich prednostnej bázickej adrese.
- Zistí poruchy inicializácie modulov sledovaním hovorov do vstupných bodov modulov a hľadaním chýb.
- Dependency Walker môže tiež vykonávať run-time profil aplikácie na detekciu dynamicky nabitých modulov a porúch inicializácie modulov. Rovnaká kontrola chýb zhora platí aj pre dynamicky načítané moduly.
Pomáhala som napríklad klientovi na druhý deň - načítavala Internet Explorer, ale IE sa neustále zrútila bez špecifických chýb. Urobili sme väčšinu základných riešení problémov, ako je vypnutie doplnkov a panelov nástrojov, resetovanie IE na predvolené nastavenie atď. Napriek tomu však stále dochádza k zrúteniu. To znamená, že jeden alebo viac súborov potrebných na správne fungovanie programu Internet Explorer spôsobuje problém. Je vždy ťažké riešiť takéto prípady, ale s Dependency Walker, môžeme vidieť, či niečo nie je v poriadku s jedným zo závislých súborov.
Takže som zaviedol program Internet Explorer v službe Dependency Walker.
Dúfam, že vám to povie, aké ľahké je použiť nástroj na zistenie možných chýb závislosti.
Ako používať Dependency Walker
Ak chcete používať službu Dependency Walker na vyšetrenie chýb, môžete postupovať podľa týchto krokov:
- Začnite Dependency Walker
- Kliknutím na položku Otvoriť v ponuke Súbor sa načíta problémový súbor
- V ponuke Zobraziť kliknite na položku Spustiť profilovanie. Zobrazí sa dialógové okno modulu profilu
- Zadajte akékoľvek prepínače, argumenty programu, ďalšie požadované možnosti a potom kliknite na tlačidlo OK.
Dependency Walker pred doručením dwject.dll injektuje dwinject.dll a zaznamená udalosti, ku ktorým došlo v čase chyby.
Závislosť Walker stiahnuť
Môžete si stiahnuť Dependency Walker z tu.