In file heap_profiler.cpp
member functions like size(), hash(), operator==, need const.
Consider replacing private HashTable implementation with standard one.
L479 bounds on j are infinite if numFrames < skipEndFrames.
L486 first paren isn't necessarily start of function params.
for example, "_Z1gIEPFviEv" demangles to "void (*g<>())(int)", a function returning a function pointer. Maybe just don't demangle.
L502 StringData receives a dangling reference.