Integrated: 8264593: debug.cpp utilities should be available in product builds.

Kevin Walls kevinw at openjdk.java.net
Wed Apr 28 08:57:04 UTC 2021


On Thu, 1 Apr 2021 14:05:42 GMT, Kevin Walls <kevinw at openjdk.org> wrote:

> This is a pull request to move the ifndef PRODUCT in src/hotspot/share/utilities/debug.cpp, and add JNIEXPORT for symbol visibility on Windows.
> 
> With these changes, we can use gdb on a live Linux process of a product build JVM, and call debug.cpp utilities.
> e.g. "call universe()", or "call hsfind(0xADDRESS)".
> 
> (I found that making calls in the JLI_Launch thread (gdb's thread 1) will crash, but switching first to a JavaThread works.)
> 
> In Visual Studio use the Immediate window, just type the function name.  Verified that without the changes, the symbols can't be seen/called.
> 
> Printing happens on the LIVE jvm's tty (not the gdb session).
> 
> 
> WizardMode is a develop flag, can't be changed in a product build, so avoid changing that in the debug() utility.
> 
> 
> pa() is left ifndef PRODUCT, as the class AllocatedObj is ifndef PRODUCT in src/hotspot/share/memory/allocation.hpp
> 
> 
> pns(...) uses frame fr(sp, fp, pc); but we have an ifndef PRODUCT on frame constructor:  frame(void* sp, void* fp, void* pc);
> Leave pns and pns2 ifndef PRODUCT.
> 
> 
> File size changes:
> Linux: libjvm.so becomes 8904 bytes larger.
> Windows: jvm.dll becomes 6656 bytes larger.

This pull request has now been integrated.

Changeset: e325a750
Author:    Kevin Walls <kevinw at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/e325a750ac795181f14b278fcd171170dbb3bbd5
Stats:     43 lines in 1 file changed: 2 ins; 12 del; 29 mod

8264593: debug.cpp utilities should be available in product builds.

Reviewed-by: sspitsyn, coleenp, vlivanov

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

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


More information about the hotspot-dev mailing list