(See: JVMTI 仕様)
JvmtiEnv::GetLoadedClasses()
-> JvmtiGetLoadedClasses::getLoadedClasses()
-> (1) (前準備を行う)
-> JvmtiGetLoadedClassesClosure::JvmtiGetLoadedClassesClosure()
-> set_this()
-> JavaThread::set_jvmti_get_loaded_classes_closure()
(2) 該当するクラスの個数を数える
-> SystemDictionary::classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::increment()
-> Universe::basic_type_classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::increment()
(3) 個数分の配列を確保する
-> JvmtiGetLoadedClassesClosure::allocate()
(4) 確保した配列に該当のクラスを格納する
-> SystemDictionary::classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::add()
-> Universe::basic_type_classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::add()
(5) 返却用の配列に結果をコピー
-> JvmtiGetLoadedClassesClosure::extract()
JvmtiEnv::GetClassLoaderClasses()
-> JvmtiGetLoadedClasses::getClassLoaderClasses()
-> (1) (前準備を行う)
-> JvmtiGetLoadedClassesClosure::JvmtiGetLoadedClassesClosure()
-> set_this()
-> JavaThread::set_jvmti_get_loaded_classes_closure()
(2) 該当するクラスの個数を数える
-> SystemDictionary::classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::increment_with_loader()
-> Universe::basic_type_classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::increment_for_basic_type_arrays()
(3) 個数分の配列を確保する
-> JvmtiGetLoadedClassesClosure::allocate()
(4) 確保した配列に該当のクラスを格納する
-> SystemDictionary::classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::add_with_loader()
-> Universe::basic_type_classes_do()
-> ... (See: #TODO)
-> JvmtiGetLoadedClassesClosure::add_for_basic_type_arrays()
(5) 返却用の配列に結果をコピー
-> JvmtiGetLoadedClassesClosure::extract()
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction)
(#Under Construction)
(#Under Construction)
(#Under Construction)
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.