On Tue, 16 Mar 2021 12:01:30 GMT, Yasumasa Suenaga <ysuen...@openjdk.org> wrote:

> jhsdb supports pmap (jhsdb jmap) and pstack (jhsdb jstack --mixed), and they 
> work fine if they attach to live process or to coredump, however they do not 
> work on debug server as following:
> 
> $ jhsdb jmap --connect localhost
> Attaching to remote server localhost, please wait...
> Debugger attached successfully.
> Server compiler detected.
> JVM version is 11.0.10+9
> remote configuration is not yet implemented
> 
> pmap and pstack depend on CDebugger in SA, however it would not be set in 
> case of remote debugger client. We can avoid it if we can delegate the 
> process to debug server.

test/hotspot/jtreg/serviceability/sa/sadebugd/PmapOnDebugdTest.java line 56:

> 54:             // are not required.
> 55:             throw new SkippedException("Cannot run this test on OSX if 
> adding privileges is required.");
> 56:         }

pmap and pstack are not even supported on OSX with a live process. The 
automated github testing did not catch this because it passed due to the above 
check:

TEST RESULT: Passed. Skipped: jtreg.SkippedException: Cannot run this test on 
OSX if adding privileges is required.

If it passed the check, it would have failed below to find a .dylib. You could 
change the code below to something like what is in ClhsdbPmap.java:

            if (!withCore && Platform.isOSX()) {
                expStrMap.put("pmap", List.of("Not available for Mac OS X 
processes"));
            } else {
                expStrMap.put("pmap", List.of("jvm", "java", "jli", "jimage"));
            }

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

PR: https://git.openjdk.java.net/jdk/pull/3027

Reply via email to