特定の状態で現在のヒープを取得するために、JVMTI API ( http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html ) を見ています。
これを行うには、jvmtiHeapCallbacksへのポインタを引数として取るFollowReferences ( http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html#FollowReferences ) メソッドを使用したいと思います。いくつかのコールバック、特にヒープ参照コールバックを定義する構造。
このコールバックは、次の形式にする必要があります。
    typedef jint (JNICALL *jvmtiHeapReferenceCallback)
                 (jvmtiHeapReferenceKind reference_kind, 
                  const jvmtiHeapReferenceInfo* reference_info, 
                  jlong class_tag, 
                  jlong referrer_class_tag, 
                  jlong size, 
                  jlong* tag_ptr, 
                  jlong* referrer_tag_ptr, 
                  jint length, 
                  void* user_data);
class_tag の使い方がわかりません。API で、class_tag を jclass に変換する機能を見つけることができませんでした。いくつかの例を見てきましたが、class_tag を使用できませんでした。
API には SetTag 関数と GetTag 関数がありますが、それらは jclass ではなく jobject 用のようです。