debug in hotspot

Xin Tong at
Thu May 3 17:48:54 PDT 2012

On Thu, May 3, 2012 at 8:45 PM, Xin Tong < at> wrote:
> On Thu, May 3, 2012 at 8:29 PM, Krystal Mok <rednaxelafx at> wrote:
>> On 2012-5-4, at 8:16, Xin Tong < at> wrote:
>>> i would like to know how to debug in hotspot, what are some of the
>>> standard procedures ? Lets say, the hotspot fails to run a Java
>>> program. a few steps to triage the problem.
>>> 1. disable JIT compilers. hotspot has 2 compilers c1 and c2. they are
>>> both used if TieredCompilation is enabled. How do I disable both of
>>> them.
>> It's there in the globals.hpp file: -XX:-UseCompiler
>>> 2. if the Java program passes after the JIT is disabled. There is a
>>> good chance that the problem is cause by the JIT. I want to narrow
>>> down to a specific method, I can use PrintCompilation to find out all
>>> the method compiled, but how can I disable one specific method from
>>> being compiled.
>> -XX:CompileCommand='exclude,your/class,yourMethod'
>> Or an equivalent .hotspot_compiler configuration file.
>> Read this thread for example (in Chinese):

By the way, one thing we can do here is to force c1 to compile a
method. i.e. c2 is more likely to fail than c1 as it does more
optimizations. how do i force c1 to compile a method ? and how do i
know which compiler is used to compile a method in the
PrintCompilation log  or through any other options ?

>>> 3. if i am able to limit down to a specific method, i want to start
>>> disabling optimizations, is there an option to disable all
>>> optimizations in the c1 and c2 compilers, or i need to do it manually
>>> ?
>> I don't think there's an all-in-one flag to turn all optimizations off. At least not for now.
>> See c1_globals.hpp and c2_globals.hpp to get an idea of what optimizations you can turn off.
>> - Kris
>>> Thanks
> Thank you very much Kris. This is very helpful.

More information about the hotspot-compiler-dev mailing list