public class HotSpotStackFrameReference extends Object implements InspectedFrame
Modifier and Type | Field and Description |
---|---|
private int |
bci |
private CompilerToVM |
compilerToVM |
private int |
frameNumber |
private boolean[] |
localIsVirtual |
private Object[] |
locals |
private long |
metaspaceMethod |
private long |
stackPointer |
Constructor and Description |
---|
HotSpotStackFrameReference() |
Modifier and Type | Method and Description |
---|---|
int |
getBytecodeIndex() |
int |
getFrameNumber() |
Object |
getLocal(int index)
Returns the value of the local at the given index.
|
ResolvedJavaMethod |
getMethod() |
long |
getStackPointer() |
boolean |
hasVirtualObjects()
Returns true if the stack frame is a compiled stack frame and there are virtual objects
anywhere in the current state of the compiled method.
|
boolean |
isMethod(ResolvedJavaMethod method)
Checks if the current method is equal to the given method.
|
boolean |
isVirtual(int index)
Returns whether the local at the given index is a virtual object, and therefore the object
returned by
InspectedFrame.getLocal(int) is a copy. |
void |
materializeVirtualObjects(boolean invalidateCode)
This method will materialize all virtual objects, deoptimize the stack frame and make sure
that subsequent execution of the deoptimized frame uses the materialized values.
|
String |
toString() |
private CompilerToVM compilerToVM
private long stackPointer
private int frameNumber
private int bci
private long metaspaceMethod
private boolean[] localIsVirtual
public HotSpotStackFrameReference()
public long getStackPointer()
public int getFrameNumber()
public Object getLocal(int index)
InspectedFrame
InspectedFrame.isVirtual(int)
is true.getLocal
in interface InspectedFrame
public boolean isVirtual(int index)
InspectedFrame
InspectedFrame.getLocal(int)
is a copy.isVirtual
in interface InspectedFrame
public void materializeVirtualObjects(boolean invalidateCode)
InspectedFrame
materializeVirtualObjects
in interface InspectedFrame
public int getBytecodeIndex()
getBytecodeIndex
in interface InspectedFrame
public ResolvedJavaMethod getMethod()
getMethod
in interface InspectedFrame
public boolean isMethod(ResolvedJavaMethod method)
InspectedFrame
method.equals(getMethod())
, but can be implemented more efficiently.isMethod
in interface InspectedFrame
public boolean hasVirtualObjects()
InspectedFrame
InspectedFrame.isVirtual(int)
return false for all locals.hasVirtualObjects
in interface InspectedFrame