src/share/vm/prims/jvmtiImpl.cpp

Print this page
rev 4773 : 8005849: JEP 167: Event-Based JVM Tracing
Reviewed-by: acorn, coleenp, sla
Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>

*** 358,380 **** _breakpoints->set_at_safepoint(*_bp); break; case CLEAR_BREAKPOINT: _breakpoints->clear_at_safepoint(*_bp); break; - case CLEAR_ALL_BREAKPOINT: - _breakpoints->clearall_at_safepoint(); - break; default: assert(false, "Unknown operation"); } } void VM_ChangeBreakpoints::oops_do(OopClosure* f) { ! // This operation keeps breakpoints alive ! if (_breakpoints != NULL) { ! _breakpoints->oops_do(f); ! } if (_bp != NULL) { _bp->oops_do(f); } } --- 358,375 ---- _breakpoints->set_at_safepoint(*_bp); break; case CLEAR_BREAKPOINT: _breakpoints->clear_at_safepoint(*_bp); break; default: assert(false, "Unknown operation"); } } void VM_ChangeBreakpoints::oops_do(OopClosure* f) { ! // The JvmtiBreakpoints in _breakpoints will be visited via ! // JvmtiExport::oops_do. if (_bp != NULL) { _bp->oops_do(f); } }
*** 431,467 **** _bps.remove(i); bp.clear(); } } - void JvmtiBreakpoints::clearall_at_safepoint() { - assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint"); - - int len = _bps.length(); - for (int i=0; i<len; i++) { - _bps.at(i).clear(); - } - _bps.clear(); - } - int JvmtiBreakpoints::length() { return _bps.length(); } int JvmtiBreakpoints::set(JvmtiBreakpoint& bp) { if ( _bps.find(bp) != -1) { return JVMTI_ERROR_DUPLICATE; } ! VM_ChangeBreakpoints set_breakpoint(this,VM_ChangeBreakpoints::SET_BREAKPOINT, &bp); VMThread::execute(&set_breakpoint); return JVMTI_ERROR_NONE; } int JvmtiBreakpoints::clear(JvmtiBreakpoint& bp) { if ( _bps.find(bp) == -1) { return JVMTI_ERROR_NOT_FOUND; } ! VM_ChangeBreakpoints clear_breakpoint(this,VM_ChangeBreakpoints::CLEAR_BREAKPOINT, &bp); VMThread::execute(&clear_breakpoint); return JVMTI_ERROR_NONE; } void JvmtiBreakpoints::clearall_in_class_at_safepoint(Klass* klass) { --- 426,452 ---- _bps.remove(i); bp.clear(); } } int JvmtiBreakpoints::length() { return _bps.length(); } int JvmtiBreakpoints::set(JvmtiBreakpoint& bp) { if ( _bps.find(bp) != -1) { return JVMTI_ERROR_DUPLICATE; } ! VM_ChangeBreakpoints set_breakpoint(VM_ChangeBreakpoints::SET_BREAKPOINT, &bp); VMThread::execute(&set_breakpoint); return JVMTI_ERROR_NONE; } int JvmtiBreakpoints::clear(JvmtiBreakpoint& bp) { if ( _bps.find(bp) == -1) { return JVMTI_ERROR_NOT_FOUND; } ! VM_ChangeBreakpoints clear_breakpoint(VM_ChangeBreakpoints::CLEAR_BREAKPOINT, &bp); VMThread::execute(&clear_breakpoint); return JVMTI_ERROR_NONE; } void JvmtiBreakpoints::clearall_in_class_at_safepoint(Klass* klass) {
*** 488,502 **** } } } } - void JvmtiBreakpoints::clearall() { - VM_ChangeBreakpoints clearall_breakpoint(this,VM_ChangeBreakpoints::CLEAR_ALL_BREAKPOINT); - VMThread::execute(&clearall_breakpoint); - } - // // class JvmtiCurrentBreakpoints // JvmtiBreakpoints *JvmtiCurrentBreakpoints::_jvmti_breakpoints = NULL; --- 473,482 ----