agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java Thu Jul 19 15:09:01 2012
--- new/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java Thu Jul 19 15:09:01 2012
*** 145,160 ****
--- 145,154 ----
} else {
return false;
}
}
public boolean isRicochetFrame() {
CodeBlob cb = VM.getVM().getCodeCache().findBlob(getPC());
RicochetBlob rcb = VM.getVM().ricochetBlob();
return (cb == rcb && rcb != null && rcb.returnsToBounceAddr(getPC()));
}
public boolean isCompiledFrame() {
if (Assert.ASSERTS_ENABLED) {
Assert.that(!VM.getVM().isCore(), "noncore builds only");
}
CodeBlob cb = VM.getVM().getCodeCache().findBlob(getPC());
*** 214,225 ****
--- 208,218 ----
/** returns the sender, but skips conversion frames */
public Frame realSender(RegisterMap map) {
if (!VM.getVM().isCore()) {
Frame result = sender(map);
! while (result.isRuntimeFrame() ||
result.isRicochetFrame()) {
! while (result.isRuntimeFrame()) {
result = result.sender(map);
}
return result;
} else {
return sender(map);
*** 629,641 ****
--- 622,631 ----
private void oopsCodeBlobDo (AddressVisitor oopVisitor, RegisterMap regMap) {
CodeBlob cb = VM.getVM().getCodeCache().findBlob(getPC());
if (Assert.ASSERTS_ENABLED) {
Assert.that(cb != null, "sanity check");
}
if (cb == VM.getVM().ricochetBlob()) {
oopsRicochetDo(oopVisitor, regMap);
}
if (cb.getOopMaps() != null) {
OopMapSet.oopsDo(this, cb, regMap, oopVisitor, VM.getVM().isDebugging());
// FIXME: add in traversal of argument oops (skipping this for
// now until we have the other stuff tested)
*** 648,661 ****
--- 638,647 ----
// if (cb->is_nmethod() && ((nmethod *)cb)->is_not_entrant()) {
// ((nmethod*)cb)->mark_as_seen_on_stack();
// }
}
private void oopsRicochetDo (AddressVisitor oopVisitor, RegisterMap regMap) {
// XXX Empty for now
}
// FIXME: implement the above routines, plus add
// oops_interpreted_arguments_do and oops_compiled_arguments_do
}
//
agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File