2015-03-29 3 views
0

В настоящее время я работаю с JVMTI в первый раз.Java/JVMTI: использование JavaVM-параметра в Agent_OnLoad (JavaVM, char *, void)

В основном я использую JVM(TM) Tool Interface Documentation, если возникнут какие-либо вопросы.

Но что я не могу найти: Что может использовать параметр JavaVM для , за исключением получения окружения, вызвав GetEnv (...) на нем? Это единственная цель?

Я не смог найти никакой дополнительной документации ни по самому классу JavaVM, ни по этому параметру в частности. Вероятно, я был просто слепым, и кто-то может указать мне в правильном направлении (объяснения, документация, учебники и т. Д.).

Вот некоторые типичный пример кода на параметре Useage я видел до сих пор:

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 
} 

ответ

1

JavaVM структура является частью Java Invocation API.

Она содержит следующие функции:

  • GetEnv
  • DestroyJavaVM
  • AttachCurrentThread
  • AttachCurrentThreadAsDaemon
  • DetachCurrentThread