Top


定義場所(file name)

hotspot/src/share/vm/prims/jvmtiEventController.cpp

名前(function name)

void
JvmtiEventControllerPrivate::env_initialize(JvmtiEnvBase *env) {

本体部(body)

  {- -------------------------------------------
  (1) (変数宣言など)
      ---------------------------------------- -}

      assert(Threads::number_of_threads() == 0 || JvmtiThreadState_lock->is_locked(), "sanity check");

  {- -------------------------------------------
  (1) (トレース出力)
      ---------------------------------------- -}

      EC_TRACE(("JVMTI [*] # env initialize"));

  {- -------------------------------------------
  (1) JvmtiEventControllerPrivate::event_init() で初期化を行う.
      ---------------------------------------- -}

      if (JvmtiEnvBase::is_vm_live()) {
        // if we didn't initialize event info already (this is a late
        // launched environment), do it now.
        event_init();
      }

  {- -------------------------------------------
  (1) JvmtiEnvBase::initialize() で初期化を行う.
      ---------------------------------------- -}

      env->initialize();

  {- -------------------------------------------
  (1) 全ての JvmtiThreadState に対して JvmtiThreadState::add_env() を呼び出し, 
      env 引数に対応する JvmtiEnvThreadState の
      作成と登録を行う.
      ---------------------------------------- -}

      // add the JvmtiEnvThreadState to each JvmtiThreadState
      for (JvmtiThreadState *state = JvmtiThreadState::first(); state != NULL; state = state->next()) {
        state->add_env(env);
        assert((JvmtiEnv*)(state->env_thread_state(env)->get_env()) == env, "sanity check");
      }

  {- -------------------------------------------
  (1) JvmtiEventControllerPrivate::recompute_enabled() を呼んで, 
      "truly enabled event" 情報を更新する.
      ---------------------------------------- -}

      JvmtiEventControllerPrivate::recompute_enabled();
    }

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