Up Top

Serviceability 機能 : JVMTI の処理 : JVMTI 関数の処理 : スレッド (Thread) : RunAgentThread() の処理


概要(Summary)

(See: JVMTI 仕様)

内部実装としては JvmtiAgentThread クラスが使用される (See: JvmtiAgentThread).

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

JvmtiAgentThread を作成する処理

JvmtiEnv::RunAgentThread()
-> (1) 新しい JvmtiAgentThread オブジェクトを生成する
       -> JvmtiAgentThread::JvmtiAgentThread()   (<= なお, エントリポイントとしては JvmtiAgentThread::start_function_wrapper() 関数が指定されている)
          -> JavaThread::JavaThread()
             -> (See: here for details)

   (1) 生成した JvmtiAgentThread オブジェクトを初期化する
       -> java_lang_Thread::set_thread()
       -> java_lang_Thread::set_priority()
       -> java_lang_Thread::set_daemon()
       -> JavaThread::set_threadObj()
       -> Threads::add()

   (1) 生成した JvmtiAgentThread の実行を開始させる.
       -> Thread::start()
          -> (See: here for details)

生成された JvmtiAgentThread 側の処理

JvmtiAgentThread::start_function_wrapper()
-> JvmtiAgentThread::call_start_function()
   -> コンストラクタ引数で指定された関数(= ユーザーが RunAgentThread() で指定した関数) を呼び出す.

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

JvmtiEnv::RunAgentThread()

See: here for details

JvmtiAgentThread::JvmtiAgentThread()

See: here for details

java_lang_Thread::set_thread()

See: here for details

java_lang_Thread::set_priority()

See: here for details

java_lang_Thread::set_daemon()

See: here for details

JavaThread::set_threadObj()

See: here for details

Threads::add()

See: here for details

JvmtiAgentThread::start_function_wrapper()

See: here for details

JvmtiAgentThread::call_start_function()

See: here for details


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