RFR: 8136978 Much nearly duplicated code for vmError support

Sebastian Sickelmann sebastian.sickelmann at gmx.de
Fri Oct 16 04:33:20 UTC 2015


Hi,

i have looked at the enhancement JDK-8136978, please find my first suggestion 
at [0] http://cr.openjdk.java.net/~sebastian/8136978/webrev.00/.

I first looked also at another solution but don't liked it. For some details
on this and comments of Coleen and Kim to this, see the thread at hotspot-dev[1].

Right now i only compile-"tested" it on my linux(x86_64) machine, so there might
be some error in aix,bsd,solaris. I am not sure if i can setup my machine to compile
those as well. For the windows-part i am actually also not able to compile or test it.
I think there is a good change to optimize the use of #include's in the changed files,
but I am not sure how i can effectively work out where i can reduce some imports.

There are no additional tests for this. What is the best way to really test such a change
on all platforms. Do you use your development-machine for this, or is there some 
infrastructure that can test such multi-platform changes for you?

Here is a short description of the suggested change:

Nearly identically implementations of VMError moved from the os/[linux|aix|bsd|solaris]
to a os/posix. The parts that are different were refactored and are now in the os-specific
implementations of the os class. The two os specific methods ucontext_get_pc and
ucontext_set_pc are moved to the declaration of the os::Posix class. The implementations
of those remain in the os_[linux|aix|bsd|solaris].cpp implementations but are renamed 
acordingly. All uses of these methods are replaces to use the "os::Poxis prefix".

For the method VMError::show_message_box also the windows implementation is changed. Now
there are two methods in the declarartion of the class os that are used to help the
os-independent implementation of show_message. The two messages are named formatDebugMessage
and startDebugging. The os-independet implemetation of show_message can be found in 
share/vm/utilities/vmError.cpp


-- Sebastian


[0] http://cr.openjdk.java.net/~sebastian/8136978/webrev.00/
[1] http://mail.openjdk.java.net/pipermail/hotspot-dev/2015-October/020249.html 
suggestion to this.




More information about the hotspot-runtime-dev mailing list