Windows

Dependency Walker - Как использовать - Учебное пособие

0xc000007b Error - Solved! (Part 2)(Testing on AC4, FC3, GTA V)

0xc000007b Error - Solved! (Part 2)(Testing on AC4, FC3, GTA V)

Оглавление:

Anonim

Иногда обычные шаги по устранению неполадок просто не сократят его. Возможно, нам придется идти дальше и дальше - больше похоже на судебное устранение неполадок. Сегодня я напишу об инструменте, который поможет нам в этом. Dependency Walker - это инструмент для анализа зависимостей приложений Windows, таких как функции, модули и т. Д. Он строит иерархическое дерево всех зависимых модулей exe, dll, sys и т. Д.

Dependency Walker

Dependency Walker может помочь вам в устранении ошибок приложений, ошибок регистрации файлов, нарушений доступа к памяти и неправильных ошибок страницы.

Dependency Walker становится особенно полезной, если ваша конкретная программа не загружается, или служба не работает чтобы начать с ошибки, указывающей на конкретную dll. В таких случаях вы можете загрузить эту программу или dll в Dependency Walker, чтобы посмотреть, какой файл не загружается или какой модуль вызывает эту проблему, и затем исправить его.

Программа не просто загружает модули, но также сканирование возможных ошибок. Согласно файлу справки, он выполняет следующие задания:

  • Обнаружение отсутствующих файлов. Это файлы, которые необходимы в качестве зависимости от другого модуля. Симптомом этой проблемы является «Ошибка динамической библиотеки ссылок BAR.DLL не найдена в указанном пути …».
  • Обнаружение недействительных файлов. Сюда входят файлы, не совместимые с Win32 или Win64, и файлы, которые повреждены. Симптомом этой проблемы является ошибка «Ошибка приложения или DLL BAR.EXE не является допустимым Windows».
  • Обнаруживает несоответствия импорта / экспорта. Проверяет, что все функции, импортированные модулем, фактически экспортируются из зависимых модулей. Все нерешенные функции импорта помечены с ошибкой. Симптомом этой проблемы является «Ошибка точки входа FOO не может быть обнаружена в ошибке динамической библиотеки BAR.DLL».
  • Обнаруживает ошибки циклической зависимости. Это очень редкая ошибка, но может произойти с перенаправленными функциями.
  • Обнаруживает несогласованные типы процессоров. Это происходит, если модуль, построенный для одного процессора, пытается загрузить модуль, построенный для другого процессора.
  • Определяет несоответствия контрольной суммы, проверяя контрольные суммы модулей, чтобы проверить, были ли изменены какие-либо модули после их создания.
  • Обнаружение коллизий модулей на выделяя любые модули, которые не загружаются по их предпочитаемому базовому адресу.
  • Обнаруживает сбои инициализации модуля, отслеживая вызовы на точки входа модуля и ищет ошибки.
  • Dependency Walker также может выполнять профиль времени выполнения вашего приложения для обнаружения динамически загружаемых модулей и сбоев инициализации модуля. Такая же проверка ошибок сверху применяется к динамически загружаемым модулям.

Например, я помогал клиенту на днях - она ​​загружала Internet Explorer, но IE продолжал сбой, без каких-либо конкретных ошибок. Мы выполнили большинство основных проблем, таких как отключение надстроек и панелей инструментов, сброс настроек IE по умолчанию и т. Д. Но все равно он продолжал сбой. Это означало, что один или несколько файлов, необходимых для нормальной работы Internet Explorer, создавали проблему. Всегда сложно устранить такие случаи, но с помощью Dependency Walker мы можем увидеть, что-то не так с одним из зависимых файлов.

Поэтому я загрузил Internet Explorer в Dependency Walker.

Затем я расширил список один за другим

Затем я прошел через каждый из модулей, чтобы увидеть, могу ли я найти там что-то подозрительное. Я прокрутил модуль и был достаточно удачлив, чтобы найти проблему.

Я обнаружил, что файл IEFRAME.dll отсутствует. Поэтому я пошел и заменил файл с установочного DVD-диска. Это решило проблему. Теперь Internet Explorer больше не разбился.

Надеюсь, это скажет вам, как легко использовать инструмент для поиска возможных ошибок зависимостей.

Как использовать Dependency Walker

Чтобы использовать Dependency Walker для исследования ошибок, вы можете выполнить следующие действия:

  1. Walk Dependency Walker
  2. Нажмите «Открыть» в меню «Файл», чтобы загрузить файл проблемы
  3. В меню «Вид», нажмите «Начать профилирование». Появится диалоговое окно «Модуль профиля»
  4. Введите любые переключатели, параметры программы и другие параметры, которые вы хотите, и нажмите «ОК».

Уязвимость зависания будет вводить dwinject.dll до возникновения ошибки и будет регистрировать события, происходящие во время ошибка.

Dependency Walker download

Вы можете скачать Dependency Walker от здесь.