/
githubmirror
/
panama-vector
Обзор
Документация
Войти
/
githubmirror
/
panama-vector
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/hotspot/share/compiler/compilationLog.cpp
77 строк
3 KB
Vladimir Kozlov
8384862: CompilationLog::log_failure() does not produce report message
21 май 2026, 22:50
21 май 2026, 22:50
34d9e38
Код
Авторство
О чём код?
/* * Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. * */ #include "code/nmethod.hpp" #include "compiler/compilationLog.hpp" #include "compiler/compileTask.hpp" #include "logging/log.hpp" #include "memory/resourceArea.hpp" #include "runtime/thread.hpp" #include "utilities/ostream.hpp" CompilationLog* CompilationLog::_log; CompilationLog::CompilationLog() : StringEventLog("Compilation events", "jit") { } void CompilationLog::log_compile(JavaThread* thread, CompileTask* task) { StringLogMessage lm; stringStream sstr(lm.buffer(), lm.size()); // msg.time_stamp().update_to(tty->time_stamp().ticks()); task->print(&sstr, nullptr, true, false); log(thread, "%s", (const char*)lm); } void CompilationLog::log_nmethod(JavaThread* thread, nmethod* nm) { log(thread, "nmethod %d%s " INTPTR_FORMAT " code [" INTPTR_FORMAT ", " INTPTR_FORMAT "]", nm->compile_id(), nm->is_osr_method() ? "%" : "", p2i(nm), p2i(nm->code_begin()), p2i(nm->code_end())); } void CompilationLog::log_failure(JavaThread* thread, CompileTask* task, const char* reason, const char* retry_message) { StringLogMessage lm; stringStream sstr(lm.buffer(), lm.size()); if (task == nullptr) { sstr.print("Id not known, task was 0; COMPILE SKIPPED: %s", reason); } else { sstr.print("%4d COMPILE SKIPPED: %s", task->compile_id(), reason); } if (retry_message != nullptr) { sstr.print(" (%s)", retry_message); } log(thread, "%s", (const char*)lm); } void CompilationLog::log_metaspace_failure(const char* reason) { // Note: This method can be called from non-Java/compiler threads to // log the global metaspace failure that might affect profiling. StringLogMessage lm; stringStream sstr(lm.buffer(), lm.size()); sstr.print("%4d COMPILE PROFILING SKIPPED: %s", -1, reason); log(Thread::current(), "%s", (const char*)lm); } void CompilationLog::init() { _log = new CompilationLog(); }