Memory profiling



Hello,

I'm wondering if there exists some utility -maybe gdb based- that would allow to run a program and at a given time interrupt it and dump the heap usage classified by the pointer types. For example:

Heap allocation for process <blah>:

   Type_X_Access: 24.5 MB
   Type_Y_Access: 225.3 KB
   ...

I bet this could be very useful for memory usage profiling and optimization. I've just seen Massif from the Valgrind toolsuite and I'm going to read more about it. If someone can confirm this is in the right path...

I suppose something similar can be achieved using distinct storage pools for each access type being tracked, but I find this more inconvenient. Ummm, maybe a type holding a list of storage pools created on demand...

So, any suggestions in this direction?
.