VMObjectAlloc の通知処理は, 直接 JvmtiExport::post_vm_object_alloc() を呼び出すパスの他に, JvmtiVMObjectAllocEventCollector オブジェクトを用いたパスが存在する.
JvmtiVMObjectAllocEventCollector を使用する場合, まず通知するイベントの情報を JvmtiVMObjectAllocEventCollector オブジェクト内に溜めた後, JvmtiVMObjectAllocEventCollector のデストラクタ内で通知処理が行われる (See: JvmtiVMObjectAllocEventCollector).
(略) (no28916Q0G) -> CollectedHeap::post_allocation_setup_obj() -> post_allocation_notify() -> JvmtiExport::vm_object_alloc_event_collector() -> JvmtiExport::record_vm_internal_object_allocation() -> JvmtiVMObjectAllocEventCollector::record_allocation() (略) (no28916Q0G) -> CollectedHeap::post_allocation_setup_array() -> post_allocation_notify() -> (同上)
JVM_NewInstance() -> JvmtiExport::post_vm_object_alloc() -> (登録されているコールバックを呼び出す) JVM_InvokeMethod() -> JvmtiExport::post_vm_object_alloc() -> (同上) JVM_NewInstanceFromConstructor() -> JvmtiExport::post_vm_object_alloc() -> (同上) JvmtiVMObjectAllocEventCollector::~JvmtiVMObjectAllocEventCollector() -> JvmtiExport::post_vm_object_alloc() -> (同上)
(#Under Construction) See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction) See: here for details
See: here for details
See: here for details
(#Under Construction) See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.