Up Top

Serviceability 機能 : JVMTI の処理 : GetEnv() での処理


概要(Summary)

JNI の GetEnv() 関数は, 引数で指定されたバージョンに応じて 3通りの処理パスを持つ.

備考(Notes)

GetEnv() での識別に用いるバージョンは以下のように定義されている.

    ((cite: hotspot/src/share/vm/prims/jvmtiExport.hpp))
      enum {
        JVMTI_VERSION_MASK   = 0x70000000,
        JVMTI_VERSION_VALUE  = 0x30000000,
        JVMDI_VERSION_VALUE  = 0x20000000
      };

処理の流れ (概要)(Execution Flows : Summary)

(See: here for details)
-> jni_GetEnv()
   -> JvmtiExport::is_jvmti_version()
   -> JvmtiExport::get_jvmti_interface()
      -> JvmtiEnv::create_a_jvmti()
         -> JvmtiEnv::JvmtiEnv()
            -> JvmtiEnvBase::JvmtiEnvBase()
               -> JvmtiEventController::env_initialize()
                  -> JvmtiEventControllerPrivate::env_initialize()
                     -> JvmtiEnvBase::initialize()
                        -> JvmtiEnvBase::globally_initialize()
                           -> JvmtiManageCapabilities::initialize()
                              -> (See: here for details)
                           -> JvmtiExtensions::register_extensions()
                              -> (See: here for details)
                     -> JvmtiThreadState::add_env()
                     -> JvmtiEventControllerPrivate::recompute_enabled()

処理の流れ (詳細)(Execution Flows : Details)

jni_GetEnv()

See: here for details

JvmtiExport::is_jvmti_version()

See: here for details

JvmtiExport::get_jvmti_interface()

See: here for details

JvmtiExport::decode_version_values()

See: here for details

JvmtiEnv::create_a_jvmti()

See: here for details

JvmtiEnv::JvmtiEnv()

See: here for details

JvmtiEnvBase::JvmtiEnvBase()

See: here for details

JvmtiEventController::env_initialize()

See: here for details

JvmtiEventControllerPrivate::env_initialize()

See: here for details

JvmtiEnvBase::is_vm_live()

See: here for details

JvmtiEventControllerPrivate::event_init()

See: here for details

JvmtiEnvBase::initialize()

See: here for details

JvmtiEnvBase::globally_initialize()

See: here for details

JvmtiThreadState::add_env()

See: here for details

JvmtiEventControllerPrivate::recompute_enabled()

See: here for details


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.