Обнаружение утечки памяти через присоединение к процессу

Я занимаюсь разработкой плагина DLL для Visual Studio 2008, который работает в более крупном приложении. Я могу встроить его в отладку, присоединить к процессу и пройти через мой код. Основная проблема, с которой я столкнулся сейчас, — это обнаружение утечки памяти.

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

Я мог бы создать свой собственный тестовый контейнер, однако это займет некоторое время и не будет охватывать большую часть функциональности.

Есть ли простой способ обнаружения утечек памяти через присоединение к процессу?

Я попытался _CrtDumpMemoryLeaks (), однако он не работает, он не обнаруживает простую строку, как

int * memoryleak = new int[5000000];

который обычно обнаруживается при запуске непосредственно из Visual Studio

Любая помощь приветствуется, спасибо!

0

Решение

Вы можете использовать утилиту umdh, чтобы обнаружить утечку памяти в вашей dll. UMDH включен в средства отладки для Windows. Для более подробной информации проверьте следующую ссылку
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/using-umdh-to-find-a-user-mode-memory-leak

В случае, если вы хотите использовать инструмент утечки памяти, который имеет простой в использовании графический интерфейс для настройки обнаружения утечек памяти, а также отчетов об утечках, тогда вы можете воспользоваться инструментом C ++ Memory Validator из Software Verify. Хотя это платный инструмент, вы можете проверить его пробную версию, чтобы оценить его.

0

Другие решения

Других решений пока нет …