提交 cbe6befd 编写于 作者: P poonam

6822407: heapOopSize lookup is incorrect in Serviceability Agent.

Summary: heapOopSize symbol should be declared as constant in vmStructs and should not be looked up in readVMIntConstants().
Reviewed-by: never, swamyv, coleenp
上级 b9797157
......@@ -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) \
\
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册