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[] | |
| protected static int | |
| protected static int | |
| 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 |
| Access | Constructor and Description |
|---|---|
| protected | |
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| protected abstract void | |
| public abstract Object | |
| public RegisterMap | |
| public boolean | |
| public Address | |
| protected abstract Address | |
| public JavaThread | |
| public boolean | |
| private static void | |
| protected abstract void | |
| protected abstract void | |
| public void | |
| public void | |
| public void | |
| public void |
| includeArgumentOops | back to summary |
|---|---|
| protected boolean includeArgumentOops Should include argument_oop marked locations for compiler | |
| location | back to summary |
|---|---|
| protected Address[] location Location of registers | |
| locationValid | back to summary |
|---|---|
| protected long[] locationValid | |
| locationValidSize | back to summary |
|---|---|
| protected static int locationValidSize | |
| locationValidTypeSize | back to summary |
|---|---|
| protected static int locationValidTypeSize | |
| regCount | back to summary |
|---|---|
| protected static int regCount Location of a frame where the pc is not at a call (NULL if no frame exists) | |
| thread | back to summary |
|---|---|
| protected JavaThread thread Reference to current thread | |
| updateMap | back to summary |
|---|---|
| protected boolean updateMap Tells if the register map needs to be updated when traversing the stack | |
| RegisterMap | back to summary |
|---|---|
| protected RegisterMap(JavaThread thread, boolean updateMap) | |
| RegisterMap | back to summary |
|---|---|
| protected RegisterMap(RegisterMap map) Makes a copy of map into this | |
| clear | back to summary |
|---|---|
| public void clear() | |
| clearPD | back to summary |
|---|---|
| protected abstract void clearPD() Platform-dependent clear() functionality | |
| clone | back to summary |
|---|---|
| public abstract Object clone() Overrides java. Doc from java. Creates and returns a copy of this object. The precise meaning
of "copy" may depend on the class of the object. The general
intent is that, for any object will be true, and that the expression:x.clone() != x will bex.clone().getClass() == x.getClass() true, but these are not absolute requirements.
While it is typically the case that:
will bex.clone().equals(x) true, this is not an absolute requirement.
By convention, the returned object should be obtained by calling
By convention, the object returned by this method should be independent
of this object (which is being cloned). To achieve this independence,
it may be necessary to modify one or more fields of the object returned
by | |
| copy | back to summary |
|---|---|
| public RegisterMap copy() | |
| getIncludeArgumentOops | back to summary |
|---|---|
| public boolean getIncludeArgumentOops() | |
| getLocation | back to summary |
|---|---|
| public Address getLocation(VMReg reg) | |
| getLocationPD | back to summary |
|---|---|
| protected abstract Address getLocationPD(VMReg reg) Platform-dependent getLocation() functionality | |
| getThread | back to summary |
|---|---|
| public JavaThread getThread() | |
| getUpdateMap | back to summary |
|---|---|
| public boolean getUpdateMap() | |
| initialize | back to summary |
|---|---|
| private static void initialize(TypeDataBase db) | |
| initializeFromPD | back to summary |
|---|---|
| protected abstract void initializeFromPD(RegisterMap map) Platform-dependent initializeFrom() functionality | |
| initializePD | back to summary |
|---|---|
| protected abstract void initializePD() Platform-dependent initialize() functionality | |
| back to summary | |
|---|---|
| public void print() | |
| printOn | back to summary |
|---|---|
| public void printOn(PrintStream tty) | |
| setIncludeArgumentOops | back to summary |
|---|---|
| public void setIncludeArgumentOops(boolean f) | |
| setLocation | back to summary |
|---|---|
| public void setLocation(VMReg reg, Address loc) | |