hotspot/src/share/vm/runtime/vm_operations.cpp
ThreadSnapshot* VM_ThreadDump::snapshot_thread(JavaThread* java_thread, ThreadConcurrentLocks* tcl) {
{- -------------------------------------------
(1) 新しい ThreadSnapshot オブジェクトを作り,
さらに ThreadSnapshot::dump_stack_at_safepoint() で
その中に新しい ThreadStackTrace オブジェクトを生成する.
(ついでに, ThreadSnapshot::set_concurrent_locks() で
引数で渡された ThreadConcurrentLocks オブジェクトを _concurrent_locks フィールドに格納している)
返値としては, できた ThreadSnapshot オブジェクトをリターン.
---------------------------------------- -}
ThreadSnapshot* snapshot = new ThreadSnapshot(java_thread);
snapshot->dump_stack_at_safepoint(_max_depth, _with_locked_monitors);
snapshot->set_concurrent_locks(tcl);
return snapshot;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.