RFR: 8265505: findsym does not work on remote debug server

Yasumasa Suenaga ysuenaga at openjdk.java.net
Tue Apr 20 13:03:29 UTC 2021


We can see following error when we run `findsym` on CLHSDB which connects to remote debug server.


hsdb> verbose true
hsdb> findsym gHotSpotVMTypes
0x00007f913d4a45b0Error: java.lang.NullPointerException: Cannot invoke "sun.jvm.hotspot.debugger.cdbg.CDebugger.loadObjectContainingPC(sun.jvm.hotspot.debugger.Address)" because "cdbg" is null
java.lang.NullPointerException: Cannot invoke "sun.jvm.hotspot.debugger.cdbg.CDebugger.loadObjectContainingPC(sun.jvm.hotspot.debugger.Address)" because "cdbg" is null
        at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor$7.doit(CommandProcessor.java:618)
        at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:2116)
        at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:2086)
        at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor.run(CommandProcessor.java:1957)
        at jdk.hotspot.agent/sun.jvm.hotspot.CLHSDB.run(CLHSDB.java:112)
        at jdk.hotspot.agent/sun.jvm.hotspot.CLHSDB.main(CLHSDB.java:44)
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runCLHSDB(SALauncher.java:282)
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:493)


The cause of this NPE is that CDebugger is null.  It happens when the debugger is running on debugd server.
Command line debugger like CLHSDB can delegate the command to debugd, like `pmap` and `pstack`. `findsym` can also use this scheme.

This PR has passed serviceability/sa tests on Linux x64.

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

Commit messages:
 - 8265505: findsym does not work on remote debug server

Changes: https://git.openjdk.java.net/jdk/pull/3582/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3582&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8265505
  Stats: 92 lines in 6 files changed: 44 ins; 28 del; 20 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3582.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3582/head:pull/3582

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


More information about the serviceability-dev mailing list