Interesting idea, I'll give it a try tomorrow! Did you have any particular reason not to use GDB and its Python interface?
I guess that the trick is to set a breakpoint on *alloc/free, and inc/decrement a counter on breakpoint hit? I'll try to implement it in my own tool, but in Python!