From 9321f4bd7175e570f4090a614940ae5c23639711 Mon Sep 17 00:00:00 2001 From: Taizo Kurashige Date: Mon, 9 Jun 2025 16:37:42 +0900 Subject: [PATCH 1/3] Improve hsdis load error message --- src/hotspot/share/code/nmethod.cpp | 6 ++++++ src/hotspot/share/compiler/abstractDisassembler.cpp | 3 +++ src/hotspot/share/compiler/disassembler.cpp | 2 -- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/code/nmethod.cpp b/src/hotspot/share/code/nmethod.cpp index acebaae6ba4f8..dc031f6d3aabd 100644 --- a/src/hotspot/share/code/nmethod.cpp +++ b/src/hotspot/share/code/nmethod.cpp @@ -3488,6 +3488,9 @@ void nmethod::decode2(outputStream* ost) const { if (use_compressed_format && ! compressed_with_comments) { const_cast(this)->print_constant_pool(st); + st->bol(); + st->cr(); + st->print_cr("Loading hsdis library failed, so undisassembled code is printed in the below [MachCode] section"); //---< Open the output (Marker for post-mortem disassembler) >--- st->print_cr("[MachCode]"); const char* header = nullptr; @@ -3522,6 +3525,9 @@ void nmethod::decode2(outputStream* ost) const { if (compressed_with_comments) { const_cast(this)->print_constant_pool(st); + st->bol(); + st->cr(); + st->print_cr("Loading hsdis library failed, so undisassembled code is printed in the below [MachCode] section"); //---< Open the output (Marker for post-mortem disassembler) >--- st->print_cr("[MachCode]"); while ((p < end) && (p != nullptr)) { diff --git a/src/hotspot/share/compiler/abstractDisassembler.cpp b/src/hotspot/share/compiler/abstractDisassembler.cpp index 32f37e7b5139b..877c31ef82592 100644 --- a/src/hotspot/share/compiler/abstractDisassembler.cpp +++ b/src/hotspot/share/compiler/abstractDisassembler.cpp @@ -350,6 +350,9 @@ void AbstractDisassembler::decode_abstract(address start, address end, outputStr outputStream* st = (ost == nullptr) ? tty : ost; + st->bol(); + st->cr(); + st->print_cr("Loading hsdis library failed, so undisassembled code is printed in the below [MachCode] section"); //---< Open the output (Marker for post-mortem disassembler) >--- st->bol(); st->print_cr("[MachCode]"); diff --git a/src/hotspot/share/compiler/disassembler.cpp b/src/hotspot/share/compiler/disassembler.cpp index f8313db66aa2d..017ba240e7199 100644 --- a/src/hotspot/share/compiler/disassembler.cpp +++ b/src/hotspot/share/compiler/disassembler.cpp @@ -837,8 +837,6 @@ bool Disassembler::load_library(outputStream* st) { if (_library != nullptr) { _decode_instructions_virtual = CAST_TO_FN_PTR(Disassembler::decode_func_virtual, os::dll_lookup(_library, decode_instructions_virtual_name)); - } else { - log_warning(os)("Loading hsdis library failed"); } _tried_to_load_library = true; _library_usable = _decode_instructions_virtual != nullptr; From 45584ba7517c7888072f2d86b95b1d04a9373f68 Mon Sep 17 00:00:00 2001 From: Taizo Kurashige Date: Tue, 10 Jun 2025 22:07:59 +0900 Subject: [PATCH 2/3] Remove include of log.hpp --- src/hotspot/share/compiler/disassembler.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hotspot/share/compiler/disassembler.cpp b/src/hotspot/share/compiler/disassembler.cpp index 017ba240e7199..68323ec28de1e 100644 --- a/src/hotspot/share/compiler/disassembler.cpp +++ b/src/hotspot/share/compiler/disassembler.cpp @@ -31,7 +31,6 @@ #include "gc/shared/cardTable.hpp" #include "gc/shared/cardTableBarrierSet.hpp" #include "gc/shared/collectedHeap.hpp" -#include "logging/log.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" #include "oops/oop.inline.hpp" From 6ff4f9b5a3f6302ae4605ee985755fbccd3e24fb Mon Sep 17 00:00:00 2001 From: Taizo Kurashige Date: Mon, 23 Jun 2025 17:52:51 +0900 Subject: [PATCH 3/3] Fix message and revert lines for Xlog --- src/hotspot/share/code/nmethod.cpp | 4 ++-- src/hotspot/share/compiler/abstractDisassembler.cpp | 2 +- src/hotspot/share/compiler/disassembler.cpp | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/hotspot/share/code/nmethod.cpp b/src/hotspot/share/code/nmethod.cpp index dc031f6d3aabd..4abe85ded0bfe 100644 --- a/src/hotspot/share/code/nmethod.cpp +++ b/src/hotspot/share/code/nmethod.cpp @@ -3490,7 +3490,7 @@ void nmethod::decode2(outputStream* ost) const { st->bol(); st->cr(); - st->print_cr("Loading hsdis library failed, so undisassembled code is printed in the below [MachCode] section"); + st->print_cr("Loading hsdis library failed, undisassembled code is shown in MachCode section"); //---< Open the output (Marker for post-mortem disassembler) >--- st->print_cr("[MachCode]"); const char* header = nullptr; @@ -3527,7 +3527,7 @@ void nmethod::decode2(outputStream* ost) const { st->bol(); st->cr(); - st->print_cr("Loading hsdis library failed, so undisassembled code is printed in the below [MachCode] section"); + st->print_cr("Loading hsdis library failed, undisassembled code is shown in MachCode section"); //---< Open the output (Marker for post-mortem disassembler) >--- st->print_cr("[MachCode]"); while ((p < end) && (p != nullptr)) { diff --git a/src/hotspot/share/compiler/abstractDisassembler.cpp b/src/hotspot/share/compiler/abstractDisassembler.cpp index 877c31ef82592..df7781e93d5db 100644 --- a/src/hotspot/share/compiler/abstractDisassembler.cpp +++ b/src/hotspot/share/compiler/abstractDisassembler.cpp @@ -352,7 +352,7 @@ void AbstractDisassembler::decode_abstract(address start, address end, outputStr st->bol(); st->cr(); - st->print_cr("Loading hsdis library failed, so undisassembled code is printed in the below [MachCode] section"); + st->print_cr("Loading hsdis library failed, undisassembled code is shown in MachCode section"); //---< Open the output (Marker for post-mortem disassembler) >--- st->bol(); st->print_cr("[MachCode]"); diff --git a/src/hotspot/share/compiler/disassembler.cpp b/src/hotspot/share/compiler/disassembler.cpp index 68323ec28de1e..f8313db66aa2d 100644 --- a/src/hotspot/share/compiler/disassembler.cpp +++ b/src/hotspot/share/compiler/disassembler.cpp @@ -31,6 +31,7 @@ #include "gc/shared/cardTable.hpp" #include "gc/shared/cardTableBarrierSet.hpp" #include "gc/shared/collectedHeap.hpp" +#include "logging/log.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" #include "oops/oop.inline.hpp" @@ -836,6 +837,8 @@ bool Disassembler::load_library(outputStream* st) { if (_library != nullptr) { _decode_instructions_virtual = CAST_TO_FN_PTR(Disassembler::decode_func_virtual, os::dll_lookup(_library, decode_instructions_virtual_name)); + } else { + log_warning(os)("Loading hsdis library failed"); } _tried_to_load_library = true; _library_usable = _decode_instructions_virtual != nullptr;