agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6833129 Cdiff agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java
agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java
Print this page
*** 39,48 ****
--- 39,49 ----
public class ScopeDesc {
/** NMethod information */
private NMethod code;
private Method method;
private int bci;
+ private boolean reexecute;
/** Decoding offsets */
private int decodeOffset;
private int senderDecodeOffset;
private int localsDecodeOffset;
private int expressionsDecodeOffset;
*** 59,69 ****
// Decode header
DebugInfoReadStream stream = streamAt(decodeOffset);
senderDecodeOffset = stream.readInt();
method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle());
! bci = stream.readBCI();
// Decode offsets for body and sender
localsDecodeOffset = stream.readInt();
expressionsDecodeOffset = stream.readInt();
monitorsDecodeOffset = stream.readInt();
}
--- 60,70 ----
// Decode header
DebugInfoReadStream stream = streamAt(decodeOffset);
senderDecodeOffset = stream.readInt();
method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle());
! setBCIAndReexecute(stream.readInt());
// Decode offsets for body and sender
localsDecodeOffset = stream.readInt();
expressionsDecodeOffset = stream.readInt();
monitorsDecodeOffset = stream.readInt();
}
*** 76,95 ****
// Decode header
DebugInfoReadStream stream = streamAt(decodeOffset);
senderDecodeOffset = stream.readInt();
method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle());
! bci = stream.readBCI();
// Decode offsets for body and sender
localsDecodeOffset = stream.readInt();
expressionsDecodeOffset = stream.readInt();
monitorsDecodeOffset = stream.readInt();
}
public NMethod getNMethod() { return code; }
public Method getMethod() { return method; }
public int getBCI() { return bci; }
/** Returns a List<ScopeValue> */
public List getLocals() {
return decodeScopeValues(localsDecodeOffset);
}
--- 77,97 ----
// Decode header
DebugInfoReadStream stream = streamAt(decodeOffset);
senderDecodeOffset = stream.readInt();
method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle());
! setBCIAndReexecute(stream.readInt());
// Decode offsets for body and sender
localsDecodeOffset = stream.readInt();
expressionsDecodeOffset = stream.readInt();
monitorsDecodeOffset = stream.readInt();
}
public NMethod getNMethod() { return code; }
public Method getMethod() { return method; }
public int getBCI() { return bci; }
+ public boolean getReexecute() {return reexecute;}
/** Returns a List<ScopeValue> */
public List getLocals() {
return decodeScopeValues(localsDecodeOffset);
}
*** 148,164 ****
--- 150,172 ----
public void printValueOn(PrintStream tty) {
tty.print("ScopeDesc for ");
method.printValueOn(tty);
tty.println(" @bci " + bci);
+ tty.println(" reexecute: " + reexecute);
}
// FIXME: add more accessors
//--------------------------------------------------------------------------------
// Internals only below this point
//
+ private void setBCIAndReexecute(int combination) {
+ int InvocationEntryBci = VM.getVM().getInvocationEntryBCI();
+ bci = (combination >> 1) + InvocationEntryBci;
+ reexecute = (combination & 1)==1 ? true : false;
+ }
private DebugInfoReadStream streamAt(int decodeOffset) {
return new DebugInfoReadStream(code, decodeOffset, objects);
}
agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File