Windows

Dependency Walker - sposób korzystania - samouczek

Dependency Walker (Hatalı DLL Bulucu)

Dependency Walker (Hatalı DLL Bulucu)

Spisu treści:

Anonim

Czasami zwykłe kroki rozwiązywania problemów po prostu jej nie przerwie. Być może będziemy musieli pójść dalej - bardziej jak kryminalne rozwiązywanie problemów. Dzisiaj napiszę o narzędziu, które nam w tym pomoże. Dependency Walker to narzędzie do analizy zależności aplikacji Windows - jak funkcje, moduły, itp. Buduje hierarchiczne drzewo wszystkich zależnych modułów exe, dll, sys itp.

Dependency Walker

Dependency Walker może pomóc w rozwiązywaniu problemów związanych z błędami aplikacji, błędami rejestracji plików, naruszeniami dostępu do pamięci i nieprawidłowymi błędami stron.

Dependency Walker staje się szczególnie pomocny, jeśli twój program się nie ładuje lub usługa nie działa na początek z błędem wskazującym konkretną bibliotekę dll. W takich przypadkach możesz załadować ten program lub plik dll w module Dependency Walker, aby sprawdzić, który plik nie załadował się lub jaki moduł powoduje problem - i naprawić go.

Program nie tylko ładuje moduły, ale także skanuje potencjalne błędy. Zgodnie z plikiem pomocy wykonuje następujące zadania:

  • Wykrywa brakujące pliki. Są to pliki wymagane jako zależność od innego modułu. Objawem tego problemu jest "Błąd biblioteki dynamicznej BAR.DLL nie można znaleźć w podanej ścieżce …" błąd
  • Wykrywa niepoprawne pliki. Obejmuje to pliki niezgodne z systemem Win32 lub Win64 i pliki, które są uszkodzone. Objawem tego problemu jest błąd "Aplikacja lub biblioteka DLL BAR.EXE nie jest prawidłowym obrazem systemu Windows."
  • Wykrywa niedopasowania importu / eksportu. Sprawdza, czy wszystkie funkcje importowane przez moduł są w rzeczywistości eksportowane z modułów zależnych. Wszystkie nierozwiązane funkcje importu oznaczone są błędem. Objawem tego problemu jest błąd "Punktu wejścia procedury FOO nie może być zlokalizowany błąd biblioteki dynamicznej biblioteki łącza BAR".
  • Wykrywa okrągłe błędy zależności. Jest to bardzo rzadki błąd, ale może wystąpić z przekazywanymi funkcjami.
  • Wykrywa niedopasowane typy modułów procesorów. Dzieje się tak, jeśli moduł zbudowany dla jednego procesora próbuje załadować moduł zbudowany dla innego procesora.
  • Wykrywa niespójności sumy kontrolnej, sprawdzając sumy kontrolne modułów, aby sprawdzić, czy jakiekolwiek moduły zostały zmodyfikowane po ich utworzeniu.
  • Wykrywa kolizje modułów według podświetlanie modułów, które nie mogą się załadować w preferowanym adresie bazowym.
  • Wykrywa awarie inicjalizacji modułów poprzez śledzenie wywołań do punktów wejścia modułów i szukanie błędów.
  • Dependency Walker może również wykonywać profil działania twojej aplikacji do wykrywania dynamicznie ładowane moduły i awarie inicjalizacji modułów. Ta sama kontrola błędów z góry dotyczy również modułów ładowanych dynamicznie.

Na przykład pomagałam klientowi na drugi dzień - ładowała Internet Explorera, ale IE dalej się zawiesza, bez żadnych konkretnych błędów. Zrobiliśmy większość podstawowych problemów, takich jak wyłączanie dodatków i pasków narzędzi, resetowanie IE do ustawień domyślnych itp., Ale wciąż się zawiesza. Oznaczało to, że jeden lub więcej plików wymaganych do prawidłowego działania programu Internet Explorer powodowało problem. Zawsze jest ciężko rozwiązywać takie przypadki, ale z Dependency Walker możemy zobaczyć, czy coś jest nie tak z jednym z zależnych plików.

Więc załadowałem Internet Explorera w Dependency Walker.

I dalej, rozszerzyłem listę jeden po drugim

Następnie przejrzałem każdy z modułów, aby sprawdzić, czy mogę znaleźć coś podejrzanego. Przeszukałem moduł i miałem szczęście znaleźć problem.

Stwierdziłem, że brakuje pliku IEFRAME.dll. Więc poszedłem i zastąpiłem plik z DVD instalacyjnego Windows. To rozwiązało problem. Teraz Internet Explorer przestał działać.

Mam nadzieję, że dzięki temu dowiesz się, jak łatwo jest użyć tego narzędzia, aby znaleźć możliwe błędy zależności.

Jak korzystać z Dependency Walker

Aby użyć Dependency Walker do zbadania błędów, wykonaj następujące kroki:

  1. Uruchom Dependency Walker
  2. Kliknij Otwórz w menu Plik, aby załadować plik problemu
  3. W menu Widok kliknij Rozpocznij profilowanie. Pojawi się okno dialogowe modułu profilu
  4. Wpisz dowolne przełączniki, argumenty programu, inne opcje, a następnie kliknij OK.

Dependency Walker wstrzyknie plik dwinject.dll zanim wystąpi błąd i zarejestruje zdarzenia zachodzące w momencie błąd

Pobranie Dependency Walker

Tutaj możesz pobrać Dependency Walker z .