On Tue, 9 Jun 2026 08:25:34 GMT, Yasumasa Suenaga <[email protected]> wrote:

>> Add a "-location" option to jcmd VM.classes which will show the URL of the 
>> class if possible. e.g.
>> 
>> 
>> 769483:
>> KlassAddr           Size  State                 Flags    ClassName
>> 0x0000000055040400    71  fully_initialized     W        MyApp$1  
>> "file:///my/progs/"
>> 0x0000000055040000    67  fully_initialized     W        MyApp  
>> "file:///my/progs/"
>> 0x0000000055005800    73  fully_initialized     W        
>> jdk.internal.event.ThreadSleepEvent
>> 0x0000000055005400    73  allocated                      
>> jdk.internal.event.ThreadSleepEvent
>> ...
>> 
>> (Fixing a column width for the ClassName seems impossible as it can be 
>> really long, so URL is simply printed after ClassName.)
>> 
>> 
>> This is a continuation of https://git.openjdk.org/jdk/pull/29048 which was 
>> pretty far along and this is a simple import.
>> A few minor changes in help text, (C), and of course whitespace.
>> 
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> src/hotspot/share/services/diagnosticCommand.cpp line 975:
> 
>> 973:         _out->print_cr("\n%d classes shared from static cache: %s", 
>> closure._aot_statics, FileMapInfo::current_info()->full_path());
>> 974:       if (closure._aot_dynamics > 0)
>> 975:         _out->print_cr("\n%d classes shared from dynamic cache: %s", 
>> closure._aot_dynamics, FileMapInfo::dynamic_info()->full_path());
> 
> Suggestion:
> 
>       if (closure._aot_statics > 0) {
>         _out->print_cr();
>         _out->print_cr("%d classes shared from static cache: %s", 
> closure._aot_statics, FileMapInfo::current_info()->full_path());
>       }
>       if (closure._aot_dynamics > 0) {
>         _out->print_cr();
>         _out->print_cr("%d classes shared from dynamic cache: %s", 
> closure._aot_dynamics, FileMapInfo::dynamic_info()->full_path());
>       }

Will add the braces for clarity. Not sure about the extra newlines, currently 
it looks like:

$ jcmd pid VM.classes -location
...
0x00000000541bdc00    65                                 [Ljava.lang.Object;
0x00000000541bd800    67  fully_initialized     fWSs     java.lang.Object

427 classes shared from static cache: 
/work/repos/personal/jdk/build/linux-x64/images/jdk/lib/server/classes.jsa
$

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/31420#discussion_r3379154481

Reply via email to