Class HeapDump.ClassBuilder

java.lang.Object
org.graalvm.tools.insight.heap.HeapDump.ClassBuilder
Enclosing class:
HeapDump

public final class HeapDump.ClassBuilder extends Object
Builds structure of a new class for the HeapDump.

Builder builder = HeapDump.newHeapBuilder(new FileOutputStream(hprof));
builder.dumpHeap((heap) -> {
    final ClassInstance classActor = heap.newClass("cartoons.Actor").
        field("name", String.class).
        field("friend", Object.class).
        field("age", int.class).
        dumpClass();
    final ObjectInstance jerry = heap.newInstance(classActor).
        put("name", heap.dumpString("Jerry")).
        putInt("age", 47).
        // field 'friend' remains null
        dumpInstance();
    final ObjectInstance tom = heap.newInstance(classActor).
        put("name", heap.dumpString("Tom")).
        put("friend", jerry).
        putInt("age", 32).
        dumpInstance();
    final ClassInstance classMain = heap.newClass("cartoons.Main").
        field("tom", classActor).
        field("jerry", classActor).
        field("thread", java.lang.Thread.class).
        dumpClass();

    HeapDump.InstanceBuilder mainBuilder = heap.newInstance(classMain);
    final ObjectInstance main = mainBuilder.id();
    mainBuilder.put("tom", tom).put("jerry", jerry);

    ObjectInstance cathingThread = heap.newThread("Catching Jerry").
        addStackFrame(classActor, "tom", "Actor.java", -1, jerry, tom, main).
        addStackFrame(classMain, "main", "Main.java", -1, main).
        dumpThread();

    mainBuilder.put("thread", cathingThread).dumpInstance();
});
Since:
21.1
See Also: