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

NMT integration into pp debug command does not work

    XMLWordPrintable

Details

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

    Description

      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) {
      ```

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: