Diagnostic command fixes

David Holmes david.holmes at oracle.com
Tue Feb 14 19:03:46 PST 2012

Hi Nils,

I only glanced at this and though the change in thread.cpp a little strange:

3401   // Set flag that basic initialization has completed. Used by 
exceptions and various
3402   // debug stuff, that does not work until all basic classes have 
been initialized.
3403   set_init_completed();
3405 #ifndef USDT2
3406   HS_DTRACE_PROBE(hotspot, vm__init__end);
3407 #else /* USDT2 */
3409 #endif /* USDT2 */
3411   // Must be run after init_ft which initializes ft_enabled
3412   if (TRACE_INITIALIZE() != JNI_OK) {
3413     vm_exit_during_initialization("Failed to initialize tracing 
3414   }

Seems odd to move something that can abort VM initialization to _after_ 
the point where we have set_init_completed() and posted vm__init__end. 
Surely this should go above there.

Also are we certain that none of the preceding initialization code will 
lead to other TRACE related code that will require that TRACE has 
already been initialized? (I seem to recall from sideband email that 
this had to move until after IllegalArgumentException had been 
initialized incase initialization failed).

Speaking of initializing IllegalArgumentException ... the else clause 
for InitializeJavaLangExceptionsErrors seems to be getting out of sync 
with the if clause. That said I wonder if anything can even work if 
InitializeJavaLangExceptionsErrors were set false?


On 14/02/2012 7:58 AM, Nils Loodin wrote:
> Hey all!
> The new diagnostic command parser needs some additional specializations for time and bytes, here included.
> Also a few fixes for crashes for some combinations of commandlines.
> Tested by throwing a lot of different arguments on the parser, also by running the tests in sun/tools/jcmd.
> http://cr.openjdk.java.net/~nloodin/7145243/webrev.00/
> I would also need a sponsor to get this in..
> Regards
> Nils Loodin

More information about the hotspot-runtime-dev mailing list