On Mon, 15 Jan 2024 16:03:03 GMT, Tom Rodriguez <ne...@openjdk.org> wrote:

>> The changes for JDK-8287061 didn't update the SA decoding logic and there 
>> are other places where the decoding has gotten out of sync with HotSpot.  
>> Some of them can't be tested because they are part of JVMCI but I've added a 
>> directed test for the JDK-8287061 code and a more brute force test that 
>> tries to decode everything.
>
> Tom Rodriguez has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Update 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java
>    
>    Co-authored-by: Andrey Turbanov <turban...@gmail.com>
>  - Update 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java
>    
>    Co-authored-by: Andrey Turbanov <turban...@gmail.com>

I can't really review the implementation details because this requires compiler 
expertise I don't have. I did review the parts that were understandable without 
compiler knowledge and made a few suggestions.

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java line 
1644:

> 1642:             }
> 1643:         },
> 1644:         new Command("testdebuginfodecode", "testdebuginfodecode", 
> false) {

This doesn't belong in clhsdb. You can do all of this directly in the test if 
you launch it properly. 
See for example `TestObjectAlignment.java`.

test/hotspot/jtreg/serviceability/sa/ClhsdbTestAllocationMerge.java line 58:

> 56:             Map<String, List<String>> expStrMap = new HashMap<>();
> 57:             Map<String, List<String>> unExpStrMap = new HashMap<>();
> 58:             test.run(theApp.getPid(), cmds, expStrMap, unExpStrMap);

You can just pass `null` for the two Map args, and no need to import 
java.util.HashMap or java.util.Map.

test/hotspot/jtreg/serviceability/sa/ClhsdbTestDebugInfodDecode.java line 52:

> 50:             System.out.println("Started LingeredAppWithEnum with pid " + 
> theApp.getPid());
> 51: 
> 52:             List<String> cmds = List.of("testdebuginfodecode");

This will need to change given my suggestion to instead include the contents of 
clshdb command within this test.

test/hotspot/jtreg/serviceability/sa/ClhsdbTestDebugInfodDecode.java line 58:

> 56:             Map<String, List<String>> expStrMap = new HashMap<>();
> 57:             Map<String, List<String>> unExpStrMap = new HashMap<>();
> 58:             test.run(theApp.getPid(), cmds, expStrMap, unExpStrMap);

You can just pass null for the two Map args, and no need to import 
java.util.HashMap or java.util.Map.

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

Changes requested by cjplummer (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/17407#pullrequestreview-1825478257
PR Review Comment: https://git.openjdk.org/jdk/pull/17407#discussion_r1454151509
PR Review Comment: https://git.openjdk.org/jdk/pull/17407#discussion_r1454163583
PR Review Comment: https://git.openjdk.org/jdk/pull/17407#discussion_r1454171208
PR Review Comment: https://git.openjdk.org/jdk/pull/17407#discussion_r1454166498

Reply via email to