Я просматриваю API JVMTI (http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html), чтобы получить текущую кучу в заданном состоянии.jvmti: как использовать class_tag
Для этого я хотел бы использовать метод FollowReferences (http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html#FollowReferences), который принимает в качестве аргумента указатель на структуру jvmtiHeapCallbacks, которая определяет несколько обратных вызовов и, в частности, обратный вызов ссылки на кучу.
Этот обратный вызов должен иметь следующий вид:
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 я не могу найти fonction, преобразующий class_tag в jclass. Я просмотрел несколько примеров и не смог получить использование class_tag.
В API есть функции SetTag и GetTag, но они, похоже, предназначены для jobject, а не для jclass.