(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.