Как вы узнаете, кто создал частную кучу? - PullRequest
3 голосов
/ 03 сентября 2010

У меня есть приложение для Windows C ++ с утечкой памяти. Я уверен, что утечка в одной из наших (многих) связанных библиотек. Я инструктировал глобальную функцию new и delete в нашем приложении, и вызовы приложения для выделения памяти выглядят нормально. Они составляют около 10% рабочего процесса, хотя. Когда я хожу по кучам // http://msdn.microsoft.com/en-us/library/ee175819%28v=VS.85%29.aspx возвращается GetProcessHeaps () http://msdn.microsoft.com/en-us/library/aa366571%28v=VS.85%29.aspx

Я вижу около дюжины куч, одна из которых содержит около половины гигабайта выделенных ресурсов. Opps!

Хорошо, так КАК я могу узнать, кто из библиотек это делает? Есть ли способ выяснить, кто выделяет кучу? У меня есть ручка каждой кучи.

1 Ответ

1 голос
/ 03 сентября 2010

Простым способом было бы подключить функцию HeapCreate().Примером этого является здесь .

...