[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR: 8279194: Add Annotated Memory Viewer feature to SA's HSDB
From:       Yasumasa Suenaga <ysuenaga () openjdk ! java ! net>
Date:       2021-12-24 13:22:20
Message-ID: VS5626QsUV_xwQd2vI7O-aGV0XBFsGhMnla7WWdPdhU=.c94749fc-1989-49f6-9a5e-e68006eea951 () github ! com
[Download RAW message or body]

On Thu, 23 Dec 2021 03:31:44 GMT, Chris Plummer <cjplummer@openjdk.org> wrote:

> HSDB has a Memory Viewer feature that brings up a window that shows the memory \
> contents in a specific address range. It basically looks just like the clhsdb "mem" \
> output. The recently revived "mem" command (see \
> [JDK-824466](https://bugs.openjdk.java.net/browse/JDK-8244669) and PR #6902) adds a \
> -v options which causes PointerFinder (aka findpc) to be called on each value in \
> memory to provide details about what the value points to (if it is an address). \
> This PR adds this same feature to HSDB by adding a new Annotated Memory Viewer \
> window. See the [this \
> image](https://bugs.openjdk.java.net/secure/attachment/97439/memory_viewer.png) \
> which shows the current Memory Viewer window, and just below it the new Annotated \
> Memory Viewer window showing the same address range.  
> A couple of implementation notes. Both types of memory viewers share the \
> MemoryPanel class. The traditional viewer uses two columns, one for the  address \
> and one for its contents. The annotated viewer uses just one column which contains \
> the entire line. For example: 
> 0x00007f7eb010c330: 0x00007f7eb6c9dfb0 vtable for os::PlatformMonitor + 0x10
> 
> This approach was chosen rather than using 3 columns because it was a difficult to \
> get the first two columns to be just wide enough for the 64-bit values while having \
> the 3rd column be a long line of text. You end up with a lot of wasted space in the \
> first two columns as you make the window wider while trying to get all the text of \
> the 3rd column into view. 
> Regarding the changes in MemoryPanel.handleImport(), Memory Viewer supports \
> clicking on a value that's an address and dragging it back onto the window to start \
> displaying memory at that address. This dropped text ends up being processed by \
> MemoryPanel.handleImport(). When you try this with Annotated Memory Viewer, you end \
> up with the entire line being passed to MemoryPanel.handleImport(), not just an \
> address (one downside of going with just 1 column instead of 3). So the changes in \
> MemoryPanel.handleImport() detect this and pull the desired address out of the \
> string.

It's a nice feature to me!

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

Marked as reviewed by ysuenaga (Reviewer).

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic