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