RFR: 8280289: Enhance debug pp() command with NMT info

Zhengyu Gu zgu at openjdk.java.net
Thu Jan 20 15:39:19 UTC 2022


JDK-8275320 enhanced NMT malloc header, provided ability to identify if a pointer points to a malloc'd memory. Further,  JDK-8277822 enabled NMT for debug builds.

This is a good opportunity to integrate NMT to debug pp() command to provide useful information collected by NMT. 

For example:

NMT=summary

(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


NMT=detail


(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

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

Commit messages:
 - More comment fixing
 - Fix comment
 - Fix minimal build
 - Merge branch 'master' into JDK-8280289-nmt-pp
 - Fix
 - Update comments
 - Cleanup and update copyright years
 - v0

Changes: https://git.openjdk.java.net/jdk/pull/7160/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7160&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8280289
  Stats: 89 lines in 5 files changed: 76 ins; 4 del; 9 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7160.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7160/head:pull/7160

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


More information about the hotspot-dev mailing list