Skip to content

monoid/hprof_dump_parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenJDK HPROF dump parsing library. Based on https://hg.openjdk.java.net/jdk/jdk/file/9a73a4e4011f/src/hotspot/share/services/heapDumper.cpp and http://hg.openjdk.java.net/jdk6/jdk6/jdk/raw-file/tip/src/share/demo/jvmti/hprof/manual.html Currently, the supported ID sizes (actually, pointer sizes) are 4 and 8. The library provides a streaming interface (iterator over dump records). Class structure information and string dictionary are kept in memory as they are required for unpacking object data. There are two modes of operation: reading from std::io::BufRead with StreamHprofReader::read_hprof_from_stream (strings are returned as Vec<u8>) and from memory with StreamHprofReader::read_hprof_from_memory (strings are returned as &'memory [u8], where 'memory is memory lifetime). Values stored in Record::String (i.e. strings by themselves) do not always have valid UTF-8 data, that's why they are returned as byte vectors/slices. Strings are returned as Record::String(id, data), and from object dump, these strings are refered by their id; this crate doesn't resolve these ids into strings (and objects are not resolved either), you have to keep id->data mapping by yourself. Author: Ivan Boldyrev <lispnik@gmail.com> 

About

Java HPROF memory dump parser written in Rust

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published