Профилирование исполняемого файла x86 с помощью Dependency Walker зависает в Windows 7 x64 - PullRequest
20 голосов
/ 12 января 2012

В Windows 7 x64 , когда я пытаюсь профилировать x86 исполняемый файл с последней версией Dependency Walker (2.2.6000), процесс профилирования всегда зависает в определенный момент.В большинстве случаев последняя загруженная DLL - это c:\windows\syswow64\URLMON.DLL, поэтому кажется, что что-то внутри этой DLL вызывает проблемы.Профилирование того же исполняемого файла в Windows 7 x86 работает безупречно.

Я довольно широко гуглил, но не смог найти решение проблемы.Одно предложение, которое я нашел, было удалить IE 8 или IE 9 и заменить его IE 7, но это не очень помогает.Единственный эффект, который я могу наблюдать, это то, что в IE 7 процесс профилирования зависает в другой DLL (iertutil.dll, если я правильно помню, также из системной папки syswow64).

Так что мой вопрос: Как я могу получить Dependency Walker для профилирования приложений x86 на 64-разрядной Windows 7?Конечно, было бы также полезно узнать, почему проблема существует в первую очередь: -)

Некоторые заключительные замечания:

  • Я использую версию Dependency Walker для x86, потому чтоЯ хочу профилировать исполняемый файл x86
  • Запуск Dependency Walker от имени администратора не помогает
  • Все параметры профилирования, помеченные как «может произойти сбой в WOW64», отключены
  • Выполняемый файлВ настоящее время в качестве тестового примера для воспроизведения проблемы используется средство просмотра PDF Sumatra ( ссылка для скачивания ), поскольку это простой .exe-файл, который не требует установки

Ответы [ 4 ]

16 голосов
/ 17 марта 2016

Обновленная инструкция на основе комментариев @Stone Free

Требуемая ссылка для скачивания изменена на:

https://www.microsoft.com/en-us/download/details.aspx?id=42273

Перейти к 2.Установите раздел WDK 10 и выберите файл для загрузки:

Найдите и запустите программу установки Wdk ( wdksetup.exe ) со стадии 2, затем выберите вариант загрузки, а не установку.

После завершения найдите и запустите DownloadLocation \ Windows Kits \ 10 \ WDK \ Installers> "Windows Driver Kit-x86_en-us.msi"

Тогда вы найдете Dependency Walker по адресу:

  • C: \ Program Files (x86) \ Windows Kits \ 10 \ Tools \ x64 \ depen.exe для 64-разрядной версии
  • C: \ Program Files (x86) \ Windows Kits \ 10 \ Tools \ x86 \ depen.exe для 32-битной версии

, которая является версией Dependency Walker 2.2.10011, построенной в 2015-10-29 x86 version

Удобным инструментом является использование https://github.com/juntalis/depends-launcher, который является простым средством запуска для Dependency Walker, которое определяет платформу (x86 | x64 | ia64) изобраз Windows (dll, exe, и т. д.) и запускает соответствующую версию depen.exe для просмотра его зависимостей.Его основная цель - использовать его в элементе контекстного меню для простого просмотра зависимостей изображения.

3 голосов
/ 16 марта 2012

Я столкнулся с той же проблемой и обнаружил, что она исправлена ​​в последней версии Dependency Walker.Я сравнил 2.2.6000 против 2.2.8288, и проблема существует в первом, но не во втором.Однако вам, вероятно, придется подождать, пока Windows 8 WDK будет выпущен для всеобщего ознакомления, чтобы получить последнюю версию.

1 голос
/ 23 мая 2019

Последняя известная на данный момент версия Dependency Walker - 2.2.10011 от 2015-10-29 (ссылки ниже).

Он был развернут с помощью некоторого комплекта разработки для Windows 10, но содержащаяся в нем версия больше не доступна на страницах Microsoft, и все более новые версии не содержат его по неизвестной причине.

Возможно, потому что в последних версиях также есть некоторые проблемы с перенаправлением библиотеки Dynamic-Link или другие проблемы с производительностью.(Использование обходчика зависимостей в Windows 10 кажется намного более медленным и громоздким, чем в предыдущих версиях Windows - но все же отличный инструмент для работы)

Доступны следующие версии:

Потенциальная замена:

Для простых задач может потребоваться проверка проекта Github lucasg / Dependencies .Но в настоящее время он не поддерживает профилирование работающего приложения для отладки нарушенных зависимостей времени выполнения, как это может сделать depends.exe.

0 голосов
/ 05 ноября 2018

Мне пришлось перейти на использование проекта GitHub: Зависимости .

Начиная с Windows 10 1809 (10.0.17763) я не могу запустить даже зависящий от версии.exe файл версии 2.2.10011, включенный в WDK 10.0.10586.0.

...