Вопрос

Я пытался профилировать несколько исполняемых файлов .NET в обработчике зависимостей и всегда получал что-то вроде этого:

GetProcAddress(0x7C800000 [KERNEL32.DLL], «FlsAlloc») вызывается из «MSCOREE.DLL» по адресу 0x79006079 и возвращает 0xFFBADD11.

Я попытался создать новый проект Windows Forms VS2005 и ничего не сделал, кроме его сборки.Обходчик зависимостей по-прежнему выдает ту же ошибку.Означает ли это, что профилировать .Net-приложения больше невозможно, или я что-то упускаю?

Это было полезно?

Решение

Dependency Walker может профилировать только неуправляемые программы.

Другие советы

Такая же проблема, но в FAQ написано следующее:

Будет ли Dependency Walker работать с модулями COM, Visual Basic или .NET?

Да.Dependency Walker будет работать с любым 32-битным или 64-битным модулем Windows, независимо от того, какой язык использовался для его разработки.Однако во многих языках есть свои способы определения отношений зависимости между модулями.Например, модули COM могут иметь встроенные библиотеки типов и регистрационную информацию в реестре, а модули .NET могут использовать сборки .NET.Все эти методы реализованы как уровни над основным API Windows.В конце концов, этим уровням по-прежнему необходимо вызывать основные функции Windows, такие как LoadLibrary и GetProcAddress, для выполнения реальной работы.Именно на этом базовом уровне Dependency Walker понимает, что происходит.Таким образом, хотя Dependency Walker может не понимать всех специфических языковых сложностей вашего приложения, он все равно сможет отслеживать всю активность модулей на базовом уровне Windows API.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top