Зависимость Walker от приложений .NET: FlsAlloc - PullRequest
4 голосов
/ 14 января 2010

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

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

Я попытался создать новый проект windows form VS2005 и ничего не сделал, кроме как построить его. Ходок за зависимостями по-прежнему выдает ту же ошибку. Значит ли это, что больше невозможно профилировать приложения .Net или я что-то упустил?

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Обходчик зависимостей может профилировать только неуправляемые программы.

1 голос
/ 24 марта 2011

Имеет ту же проблему, но часто задаваемые вопросы говорят это:

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

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

...