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

Enhance debug pp() command with NMT info

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 19
    • 18, 19
    • hotspot
    • b07

      JDK-8275320 added guards in NMT malloc header, that gives pretty good clue if a memory is a malloc memory when NMT is on.

      Further, JDK-8277822 enabled NMT for debug build.

      I believe debug pp() command can take advantage of information collected by NMT, report those information if it can identify a memory block that is tracked by NMT.

      E.g. when NMT is on:

      (gdb) call pp(0x7f2d9803db70)
      "Executing pp"
      0x00007f2d9803db70 malloc'd 1576 bytes by Internal

      (gdb) call pp(0x00007f4300a20000)
      "Executing pp"
      0x00007f4300a20000 in mmap'd memory region [0x00007f4300a20000 - 0x00007f4310000000] by GC

      When NMT detail tracking on

      (gdb) call pp(0x7f2d9803db70)
      "Executing pp"
      0x00007f2d9803db70 malloc'd 1576 bytes by Internal
      [0x00007f2d9f1b784b] G1Arguments::create_heap()+0x1b
      [0x00007f2d9f98a855] universe_init()+0x85
      [0x00007f2d9f2e0a97] init_globals()+0x37
      [0x00007f2d9f960acb] Threads::create_vm(JavaVMInitArgs*, bool*)+0x3db

      (gdb) call pp(0x00007f4300a20000)
      "Executing pp"
      0x00007f4300a20000 in mmap'd memory region [0x00007f4300a20000 - 0x00007f4310000000] by GC
      [0x00007f433dc49c7f] reserve_memory(char*, unsigned long, unsigned long, int, bool)+0x17f
      [0x00007f433dc4cf0b] ReservedSpace::reserve(unsigned long, unsigned long, unsigned long, char*, bool)+0x14b
      [0x00007f433dc4d527] ReservedSpace::initialize(unsigned long, unsigned long, unsigned long, char*, bool)+0x1c7
      [0x00007f433d949d40] ShenandoahHeap::initialize()+0x340




            zgu Zhengyu Gu
            zgu Zhengyu Gu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: