Rufen Sie IterateOverInstancesOfClass auf und bleiben Sie hängenJava

Java-Forum
Guest
 Rufen Sie IterateOverInstancesOfClass auf und bleiben Sie hängen

Post by Guest »

Ich versuche, JVMTI->IterateOverInstancesOfClass von JNI aus aufzurufen (wie hier), aber der Aufruf bleibt hängen.
Ich möchte eine finden Instanz einer bestimmten Klasse, um eine nicht statische Methode aufzurufen.
Ich habe diesen Satz in der Dokumentation gesehen:

Infolgedessen führen Threads Java-Programmiersprachencode aus, Threads Der Versuch, die Ausführung von Java-Programmiersprachencode fortzusetzen, und Threads, die versuchen, JNI-Funktionen auszuführen, werden normalerweise blockiert.

Bezüglich dieses Satzes habe ich ihn in a ausgeführt nativer Thread, den ich im JVM-Prozess erstellt habe. Ich denke, es könnte einen Effekt haben (vielleicht ist mein Thread auch blockiert, weil es kein normaler JVM-Thread ist).
Hat jemand eine Idee, warum das passieren könnte? Wie kann man es lösen? Kennen Sie eine andere Methode zum Aufrufen einer Methode für eine bestimmte Instanz einer Klasse?
Konzeptionell ist dies mein Code:

Code: Select all

// Get JVM
int vmCount;
JavaVM* jvm_array[1];
JNI_GetCreatedJavaVMs(jvm_array, 1, &vmCount);
JavaVM* jvm = jvm_array[0];

// AttachThread
JNIEnv* env;
JavaVMAttachArgs args;
args.version = JNI_VERSION_1_2;
args.name = "main";
args.group = NULL;
(*jvm)->AttachCurrentThread(jvm, (void**) &env, &args);

// Get JVMTI
jvmtiEnv* jvmti;
(*jvm)->GetEnv(jvm, (void**) &jvmti, JNI_VERSION_1_2);

// Enable can tag objects
jvmtiCapabilities cap = {0};
cap.can_tag_objects = 1;
(*jvmti)->AddCapabilities(jvmti, &cap);

// Find class using jvmti->GetLoadedClasses
jclass class = ...;

// Iterate over instances in heap
(*jvmti)->IterateOverInstancesOfClass(jvmti, class, JVMTI_HEAP_OBJECT_EITHER, callback, NULL);
Ich habe versucht, den Thread als Daemon anzuhängen und zu trennen, bevor ich IterateOverInstancesOfClass aufgerufen habe. Nichts hat funktioniert :(

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post