Java / JVMTI: Utilisation du paramètre JavaVM dans l'Agent OnLoad(JavaVM, char*, void)


Je travaille actuellement avec JVMTI très la première fois .

J'utilise principalement la documentation de l'interface de l'outil JVM(TM) si des questions se posent.

Mais ce que je n'ai pas pu découvrir, c'est: À quoi le paramètre JavaVM peut-il être utilisé pour sauf pour obtenir l'environnement en appelant GetEnv(...) sur elle? Est-ce le seul but?

Je n'ai pas pu trouver de documentation supplémentaire ni sur la classe JavaVM elle-même ni sur ce paramètre en particulier. Probablement que je l'étais juste aveugle et quelqu'un peut me diriger dans la bonne direction (Explications, Documentation, Tutoriels, etc.).

Voici un exemple de code typique sur l'utilisation des paramètres que j'ai vu jusqu'à présent:

JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) {
  jvmtiEnv              *jvmti;
  jvmtiError             error;
  jint                   res;
  jvmtiCapabilities      capabilities;
  jvmtiEventCallbacks    callbacks;

  res = (*vm)->GetEnv(vm, (void **)&jvmti, JVMTI_VERSION_1);
  // Here the code goes on
}
Author: Markus Weninger, 2015-03-29

1 answers

JavaVM la structure est une partie de API d'invocation Java .

, Il contient les fonctions suivantes:

  • GetEnv
  • DestroyJavaVM
  • AttachCurrentThread
  • AttachCurrentThreadAsDaemon
  • DetachCurrentThread
 1
Author: apangin, 2015-03-30 00:08:35