On Thu, 23 Dec 2021 04:06:58 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
> SA has the ability to fetch the thread's registers via the thread context. It > would be nice to allow access to the registers from clhsdb. This plays in > well with the enhancements being done to PointerFinder as part of > JDK-8247514. Many of the register values will then be automatically displayed > as symbols, Methods, Threads, stack offsets, nmethods, interpreter codelets, > etc. > > During some recent debugging I did I found it useful to dump a thread's > registers in this manner. Although in this case I was inlining the code in > the part of SA where I wanted to see the registers, having it as a clhsdb > command would not only be useful to user, but also useful when debugging SA > because it would serve as a code snippet to copy-n-paste where needed. > > The syntax is: > > threadcontext [-v] { -a | id } > > Where -a displays all threads, and "id" is used to display a specific thread. > This is the same argument syntax as some other commands that let you choose > all threads or just one thread, such as the "thread" and "where" commands. -v > just means more verbose output, whereas without it for the most part each > register printed will just take up one line. src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/JavaThread.java line 489: > 487: for (int r = 0; r < tc.getNumRegisters(); r++) { > 488: Address regAddr = tc.getRegisterAsAddress(r); > 489: System.out.format("Register(%s): %s", tc.getRegisterName(r), > regAddr); Would you consider just printing name = value, rather than printing the word Register many times? 8-) ------------- PR: https://git.openjdk.java.net/jdk/pull/6925