Иногда обычные шаги по устранению неполадок просто не сокращают его. Возможно, нам придется идти дальше и дальше - больше похоже на судебное устранение неполадок. Сегодня я напишу об инструменте, который поможет нам в этом. Зависимость Уокер это инструмент для анализа зависимостей приложений Windows, таких как функции, модули и т. д. Он строит иерархическое дерево всех зависимых модулей exe, dll, sys и т. д.
Зависимость Уокер
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.
Надеюсь, это скажет вам, как легко использовать инструмент для поиска возможных ошибок зависимостей.
Как использовать Dependency Walker
Чтобы использовать Dependency Walker для исследования ошибок, вы можете выполнить следующие действия:
- Начать зависание Уокер
- Нажмите «Открыть» в меню «Файл», чтобы загрузить файл проблемы
- В меню «Вид» выберите «Начать профилирование». Появится диалоговое окно «Модуль профиля»
- Введите любые переключатели, параметры программы, другие параметры и нажмите «ОК».
Dependency Walker будет вводить dwinject.dll до возникновения ошибки и будет регистрировать события, происходящие во время ошибки.
Зависимость Walker скачать
Вы можете загрузить Dependency Walker из Вот.