6822407: heapOopSize lookup is incorrect in Serviceability Agent
HeapOopSize symbol should be declared as constant in vmStructs and should not be looked up in readVMIntConstants(). Reviewed-by: never, swamyv, coleenp
This commit is contained in:
parent
595ff704c0
commit
6d21b1e4cd
@ -306,8 +306,6 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
|
||||
|
||||
entryAddr = entryAddr.addOffsetTo(intConstantEntryArrayStride);
|
||||
} while (nameAddr != null);
|
||||
String symbol = "heapOopSize"; // global int constant and value is initialized at runtime.
|
||||
addIntConstant(symbol, (int)lookupInProcess(symbol).getCIntegerAt(0, 4, false));
|
||||
}
|
||||
|
||||
private void readVMLongConstants() {
|
||||
|
@ -342,12 +342,14 @@ public class VM {
|
||||
throw new RuntimeException("Attempt to initialize VM twice");
|
||||
}
|
||||
soleInstance = new VM(db, debugger, debugger.getMachineDescription().isBigEndian());
|
||||
debugger.putHeapConst(soleInstance.getHeapOopSize(), Universe.getNarrowOopBase(),
|
||||
Universe.getNarrowOopShift());
|
||||
|
||||
for (Iterator iter = vmInitializedObservers.iterator(); iter.hasNext(); ) {
|
||||
((Observer) iter.next()).update(null, null);
|
||||
}
|
||||
|
||||
debugger.putHeapConst(soleInstance.getHeapOopSize(), Universe.getNarrowOopBase(),
|
||||
Universe.getNarrowOopShift());
|
||||
|
||||
}
|
||||
|
||||
/** This is used by the debugging system */
|
||||
|
@ -1320,6 +1320,7 @@ static inline uint64_t cast_uint64_t(size_t x)
|
||||
/****************/ \
|
||||
\
|
||||
declare_constant(oopSize) \
|
||||
declare_constant(heapOopSize) \
|
||||
declare_constant(LogBytesPerWord) \
|
||||
declare_constant(BytesPerLong) \
|
||||
\
|
||||
|
Loading…
Reference in New Issue
Block a user