Утечка памяти и хэндлов
Окружение: Win7x64, драйвера 6.3.0.112, GuardantDotNetApi.dll версии 6.3.0.17, GrdAPI32.DLL и
GrdAPI64.DLL версии 6.3.0.17. DotNet-приложение x86 защищаемое с использованием DotNetAPI.
Внешнее проявление - утечка памяти VirtualSize и WorkingSet, утечка хэндлов, перманентный рост количества динамических библиотек(Assemblies totaly, в частности DynamicAssembly и DynamicModule) процесса.
Отладкой под VS локализовал место генерации динамических библиотек (сборок). На каждый успешный вызов GrdApi.GrdCrypt(handle, algo, data, method, ref pIV) происходит создание новой и загрузка динамической библиотеки в процесс. VS output: 'Foo.exe' (Managed): Loaded 'DynamicAssembly',
'Foo.exe' (Managed): Loaded 'DynamicModule'. Вызов производится для одного актуально хэндла. Кроме утечек ошибка более никак не проявляется, т.е. ПО работает штатно до момента окончания памяти, затем появляются сообщения OutOfMemoryExceptions.
Даже при редком вызове функции (раз в минуту/две) за несколько суток виртуальная память процесса дорастает до 1,5 гигабайт, количество сборок дорастает до 1000 и более.
Вопросы:
* Что делать?
* Обновление до последней версии от 21 апреля 2014 года решит проблему?
Критичность проблемы высокая, т.к. касается распространяемого ПО.