diff --git a/src/hotspot/share/cds/aotMapLogger.cpp b/src/hotspot/share/cds/aotMapLogger.cpp index b21e2fa141cef..b0e410b5cf1bb 100644 --- a/src/hotspot/share/cds/aotMapLogger.cpp +++ b/src/hotspot/share/cds/aotMapLogger.cpp @@ -363,6 +363,12 @@ void AOTMapLogger::log_metaspace_objects_impl(address region_base, address regio case MetaspaceObj::KlassTrainingDataType: log_klass_training_data((KlassTrainingData*)src, requested_addr, type_name, bytes, current); break; + case MetaspaceObj::MethodTrainingDataType: + log_method_training_data((MethodTrainingData*)src, requested_addr, type_name, bytes, current); + break; + case MetaspaceObj::CompileTrainingDataType: + log_compile_training_data((CompileTrainingData*)src, requested_addr, type_name, bytes, current); + break; default: log_debug(aot, map)(_LOG_PREFIX, p2i(requested_addr), type_name, bytes); break; @@ -431,6 +437,7 @@ void AOTMapLogger::log_symbol(Symbol* s, address requested_addr, const char* typ log_debug(aot, map)(_LOG_PREFIX " %s", p2i(requested_addr), type_name, bytes, s->as_quoted_ascii()); } + void AOTMapLogger::log_klass_training_data(KlassTrainingData* ktd, address requested_addr, const char* type_name, int bytes, Thread* current) { ResourceMark rm(current); @@ -442,6 +449,27 @@ void AOTMapLogger::log_klass_training_data(KlassTrainingData* ktd, address reque } } +void AOTMapLogger::log_method_training_data(MethodTrainingData* mtd, address requested_addr, const char* type_name, + int bytes, Thread* current) { + ResourceMark rm(current); + if (mtd->has_holder()) { + log_debug(aot, map)(_LOG_PREFIX " %s", p2i(requested_addr), type_name, bytes, + mtd->holder()->external_name()); + } else { + log_debug(aot, map)(_LOG_PREFIX, p2i(requested_addr), type_name, bytes); + } +} + +void AOTMapLogger::log_compile_training_data(CompileTrainingData* ctd, address requested_addr, const char* type_name, + int bytes, Thread* current) { + ResourceMark rm(current); + if (ctd->method() != nullptr && ctd->method()->has_holder()) { + log_debug(aot, map)(_LOG_PREFIX " %d %s", p2i(requested_addr), type_name, bytes, + ctd->level(), ctd->method()->holder()->external_name()); + } else { + log_debug(aot, map)(_LOG_PREFIX, p2i(requested_addr), type_name, bytes); + } +} #undef _LOG_PREFIX // Log all the data [base...top). Pretend that the base address diff --git a/src/hotspot/share/cds/aotMapLogger.hpp b/src/hotspot/share/cds/aotMapLogger.hpp index 3f87215e62a5a..dce857b085047 100644 --- a/src/hotspot/share/cds/aotMapLogger.hpp +++ b/src/hotspot/share/cds/aotMapLogger.hpp @@ -33,9 +33,11 @@ #include "utilities/growableArray.hpp" class ArchiveHeapInfo; +class CompileTrainingData; class DumpRegion; class FileMapInfo; class KlassTrainingData; +class MethodTrainingData; class outputStream; // Write detailed info to a mapfile to analyze contents of the AOT cache/CDS archive. @@ -107,6 +109,8 @@ class AOTMapLogger : AllStatic { static void log_method(Method* m, address requested_addr, const char* type_name, int bytes, Thread* current); static void log_symbol(Symbol* s, address requested_addr, const char* type_name, int bytes, Thread* current); static void log_klass_training_data(KlassTrainingData* ktd, address requested_addr, const char* type_name, int bytes, Thread* current); + static void log_method_training_data(MethodTrainingData* mtd, address requested_addr, const char* type_name, int bytes, Thread* current); + static void log_compile_training_data(CompileTrainingData* ctd, address requested_addr, const char* type_name, int bytes, Thread* current); #if INCLUDE_CDS_JAVA_HEAP