Eg. this is a snippet of current output from jcmd <pid> VM.native_memory detail
[0xf6c6e7ff] NativeCallStack::NativeCallStack(int, bool)+0x5f
[0xf6db2880] Symbol::operator new(unsigned int, int, Thread*)+0xf0
[0xf6db4384] SymbolTable::basic_add(int, unsigned char*, int, unsigned int, bool, Thread*)+0x154
[0xf6db44f5] SymbolTable::lookup(char const*, int, Thread*)+0xe5
(malloc=22KB #299)
[0xf6c6e7ff] NativeCallStack::NativeCallStack(int, bool)+0x5f
[0xf66cb395] ChunkPool::allocate(unsigned int, AllocFailStrategy::AllocFailEnum)+0x125
[0xf66ca15d] Arena::Arena(MemoryType, unsigned int)+0x14d
[0xf6c0377d] Matcher::Matcher()+0x4d
(malloc=20KB #2)
[0xf66cb4a4] CHeapObj<(MemoryType)7>::operator new(unsigned int)+0x84
[0xf683c7a6] ClassLoaderData::anonymous_class_loader_data(oopDesc*, Thread*)+0x106
[0xf6dc293a] SystemDictionary::parse_stream(Symbol*, Handle, Handle, ClassFileStream*, KlassHandle, Growabl
eArray<Handle>*, Thread*)+0xba
[0xf6e141bd] Unsafe_DefineAnonymousClass+0x5fd
(malloc=19KB #201)
[0xf6c6e7ff] NativeCallStack::NativeCallStack(int, bool)+0x5f
[0xf69f54e6] BasicHashtable<(MemoryType)9>::new_entry(unsigned int)+0x166
[0xf69f5538] Hashtable<Symbol*, (MemoryType)9>::new_entry(unsigned int, Symbol*)+0x18
[0xf6db4341] SymbolTable::basic_add(int, unsigned char*, int, unsigned int, bool, Thread*)+0x111
(malloc=16KB #4)
It would be nice if these were annotated with mtClass mtCompiler or mtSymbol