Использование библиотеки CRT для поиска утечек памяти

Я следую за MSDN статьи для обнаружения утечек памяти с помощью CRT.

http://msdn.microsoft.com/en-us/library/x98tx3cf%28v=vs.100%29.aspx

я добавил _CrtDumpMemoryLeaks (); до точки выхода моего приложения. Он показывает мне тысячи утечек памяти в разных файлах. Но я заинтересован в поиске утечек памяти конкретного файла / класса / функции. Есть ли возможный способ реализовать это.

Вот что я пытался сделать.

void SomeClass::SomeRandomFunction(SomeRandomParameters)
{
_CrtDumpMemoryLeaks();                 // Start of function.
// Some lines of codes which may contain memory leaks.

_CrtDumpMemoryLeaks();                 // End of function.
}

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

1

Решение

_CrtDumpMemoryLeaks () следует использовать только в конце программы. То, что вы ищете, это _CrtMemCheckpoint (), вызовите его в начале функции, чтобы сделать снимок. И используйте _CrtMemDumpAllObjectsSince () в конце функции, чтобы увидеть, что было выделено после моментального снимка, но не выпущено. Будьте осторожны, они не обязательно могут быть утечками, когда вы делаете это мелкозернистым.

3

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector