src/share/vm/services/heapDumper.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/services/heapDumper.cpp
src/share/vm/services/heapDumper.cpp
Print this page
rev 7046 : 8059340: ConstantPool::_resolved_references is missing in heap dump
Reviewed-by: ?
*** 812,821 ****
--- 812,827 ----
u2 field_count = 0;
for (FieldStream fldc(ikh, true, true); !fldc.eos(); fldc.next()) {
if (fldc.access_flags().is_static()) field_count++;
}
+ oop resolved_references = ((InstanceKlass*)k)->constants()->resolved_references();
+
+ if (resolved_references != NULL) {
+ ++field_count;
+ }
+
writer->write_u2(field_count);
// pass 2 - dump the field descriptors and raw values
for (FieldStream fld(ikh, true, true); !fld.eos(); fld.next()) {
if (fld.access_flags().is_static()) {
*** 829,838 ****
--- 835,850 ----
address addr = (address)ikh->java_mirror() + offset;
dump_field_value(writer, sig->byte_at(0), addr);
}
}
+
+ if (resolved_references != NULL) {
+ writer->write_symbolID(vmSymbols::resolved_references_name());
+ writer->write_u1(HPROF_NORMAL_OBJECT);
+ writer->write_objectID(resolved_references);
+ }
}
// dump the raw values of the instance fields of the given object
void DumperSupport::dump_instance_fields(DumpWriter* writer, oop o) {
HandleMark hm;
src/share/vm/services/heapDumper.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File