8024425: VM_HeapDumper doesn't put anonymous classes in the heap dump

Switched from using SystemDictionary to using ClassLoaderDataGraph to get the anonymous classes included.

Reviewed-by: sla, sspitsyn
This commit is contained in:
Fredrik Arvidsson 2013-10-11 14:08:02 +02:00 committed by Staffan Larsen
parent 24118e5deb
commit 7f0264f548

View File

@ -1545,7 +1545,9 @@ void VM_HeapDumper::do_load_class(Klass* k) {
// writes a HPROF_GC_CLASS_DUMP record for the given class
void VM_HeapDumper::do_class_dump(Klass* k) {
DumperSupport::dump_class_and_array_classes(writer(), k);
if (k->oop_is_instance()) {
DumperSupport::dump_class_and_array_classes(writer(), k);
}
}
// writes a HPROF_GC_CLASS_DUMP records for a given basic type
@ -1722,7 +1724,7 @@ void VM_HeapDumper::doit() {
SymbolTable::symbols_do(&sym_dumper);
// write HPROF_LOAD_CLASS records
SystemDictionary::classes_do(&do_load_class);
ClassLoaderDataGraph::classes_do(&do_load_class);
Universe::basic_type_classes_do(&do_load_class);
// write HPROF_FRAME and HPROF_TRACE records
@ -1733,7 +1735,7 @@ void VM_HeapDumper::doit() {
write_dump_header();
// Writes HPROF_GC_CLASS_DUMP records
SystemDictionary::classes_do(&do_class_dump);
ClassLoaderDataGraph::classes_do(&do_class_dump);
Universe::basic_type_classes_do(&do_basic_type_array_class_dump);
check_segment_length();