Top


定義場所(file name)

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

名前(function name)

bool JvmtiEnvThreadState::is_frame_pop(int cur_frame_number) {

本体部(body)

  {- -------------------------------------------
  (1) (デバッグ用の処理) (#ifdef ASSERT 時にのみ実行)
      ---------------------------------------- -}

    #ifdef ASSERT
      uint32_t debug_bits = 0;
    #endif

  {- -------------------------------------------
  (1) (assert)
      ---------------------------------------- -}

      assert(get_thread() == Thread::current() || JvmtiEnv::is_thread_fully_suspended(get_thread(), false, &debug_bits),
             "frame pop data only accessible from same thread or while suspended");

  {- -------------------------------------------
  (1) interp_only_mode でなかったり, _frame_pops フィールドが空であれば, 
      (明らかに NotifyFramePop() でのイベント通知設定は行われていないので) false をリターン
      ---------------------------------------- -}

      if (!get_thread()->is_interp_only_mode() || _frame_pops == NULL) {
        return false;
      }

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

      JvmtiFramePop fp(cur_frame_number);

  {- -------------------------------------------
  (1) cur_frame_number 引数に該当するフレームが get_frame_pops() 中にあるかどうかをリターンする
      ---------------------------------------- -}

      return get_frame_pops()->contains(fp);
    }

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