Примечание: я на OSX/Yosemite, поэтому Valgrind в настоящее время недоступен. DTrace есть, но отсутствует libc: malloc hook.
Заявление о проблеме:
У меня есть программа C++, в которой используется слишком много памяти, и мне нужно знать, кто/что за преступники. Обратите внимание, что у него нет утечек памяти, он просто использует слишком много памяти. Что касается использования памяти, мне нужно знать:
ВОЗ: Было бы неплохо узнать, кто выделяет память (исходный файл, номер строки).
ЧТО: Было бы хорошо знать, что выделяется (имя класса).
Я могу написать свой собственный malloc/calloc/realloc и (вроде) выяснить это самостоятельно, но я хотел посмотреть, есть ли какие-либо инструменты для этого в первую очередь.
Вы могли бы дать dmalloc попробовать (http://dmalloc.com)
Создайте источник, ссылку на свою программу, затем играйте с функциями утилиты в http://dmalloc.com/docs/latest/online/dmalloc_13.html
(отказ от ответственности: я не использую OSX, поэтому вышеуказанное может не работать)
Оказывается, было намного проще просто использовать виртуальную машину Linux с массивом Valgrind :) Hooray для виртуальных машин!