Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8281023

NMT integration into pp debug command does not work

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 19
    • 19
    • hotspot
    • b09

      JDK-8280289 enhanced the debug pp() command to use NMT if enabled, and to print NMT related info. That is useful, but there are some issues.

      On debug, it just asserts, since the empty reserved region we create to hold the output of the mmap-search is created with address=NULL:

      ```
      (gdb) call pp(0x7ffff010b030)

      "Executing pp"

      Thread 2 "java" received signal SIGSEGV, Segmentation fault.
      0x00007ffff6721a71 in VirtualMemoryRegion::VirtualMemoryRegion (this=this@entry=0x7ffff5bb2620, addr=addr@entry=0x0, size=size@entry=0) at /shared/projects/openjdk/jdk-jdk/source/src/hotspot/share/services/virtualMemoryTracker.hpp:180
      180 assert(addr != NULL, "Invalid address");
      ```

      On release we don't assert and get further, but the use of SafeFetch is slightly wrong. It will deny us any NMT data about p if *p==0:

      ```
      if (CanUseSafeFetchN() && SafeFetchN((intptr_t*)p, 0) != 0) {
      ```

            stuefe Thomas Stuefe
            stuefe Thomas Stuefe
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: