public abstract class RegisterMap
extends java.lang.Object
implements java.lang.Cloneable
A companion structure used for stack traversal. The RegisterMap contains misc. information needed in order to do correct stack traversal of stack frames. Hence, it must always be passed in as an argument to Frame.sender(RegisterMap).
The use of RegisterMaps is slightly different in the Serviceability Agent APIs than in the VM itself. In the VM, a RegisterMap is created either for a particular thread or cloned from another RegisterMap. In these APIs, a JavaThread is the top-level factory for RegisterMaps, and RegisterMaps know how to copy themselves (through either the clone() or copy() methods).
Modifier and Type | Field and Description |
---|---|
protected boolean |
includeArgumentOops
Should include argument_oop marked locations for compiler
|
protected Address[] |
location
Location of registers
|
protected long[] |
locationValid |
protected static int |
locationValidSize |
protected static int |
locationValidTypeSize |
protected static int |
regCount
Location of a frame where the pc is not at a call (NULL if no frame exists)
|
protected JavaThread |
thread
Reference to current thread
|
protected boolean |
updateMap
Tells if the register map needs to be updated when traversing the stack
|
Modifier | Constructor and Description |
---|---|
protected |
RegisterMap(JavaThread thread,
boolean updateMap) |
protected |
RegisterMap(RegisterMap map)
Makes a copy of map into this
|
Modifier and Type | Method and Description |
---|---|
void |
clear() |
protected abstract void |
clearPD()
Platform-dependent clear() functionality
|
abstract java.lang.Object |
clone() |
RegisterMap |
copy() |
boolean |
getIncludeArgumentOops() |
Address |
getLocation(VMReg reg) |
protected abstract Address |
getLocationPD(VMReg reg)
Platform-dependent getLocation() functionality
|
JavaThread |
getThread() |
boolean |
getUpdateMap() |
protected abstract void |
initializeFromPD(RegisterMap map)
Platform-dependent initializeFrom() functionality
|
protected abstract void |
initializePD()
Platform-dependent initialize() functionality
|
void |
print() |
void |
printOn(java.io.PrintStream tty) |
void |
setIncludeArgumentOops(boolean f) |
void |
setLocation(VMReg reg,
Address loc) |
protected Address[] location
protected long[] locationValid
protected boolean includeArgumentOops
protected JavaThread thread
protected boolean updateMap
protected static int regCount
protected static int locationValidTypeSize
protected static int locationValidSize
protected RegisterMap(JavaThread thread, boolean updateMap)
protected RegisterMap(RegisterMap map)
public abstract java.lang.Object clone()
clone
in class java.lang.Object
public RegisterMap copy()
public void clear()
public boolean getIncludeArgumentOops()
public void setIncludeArgumentOops(boolean f)
public JavaThread getThread()
public boolean getUpdateMap()
public void print()
public void printOn(java.io.PrintStream tty)
protected abstract void clearPD()
protected abstract void initializePD()
protected abstract void initializeFromPD(RegisterMap map)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.