hotspot/src/share/vm/prims/jvmtiEnvThreadState.cpp
bool JvmtiEnvThreadState::is_frame_pop(int cur_frame_number) {
{- -------------------------------------------
(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.