How to inspect hotspot compiler results? hsdis binaries for Windows?

Dennis Byrne dennisbyrne at apache.org
Thu Nov 19 11:39:49 PST 2009


How do we isolate the instructions for a constructor?

Dennis Byrne

On Thu, Nov 19, 2009 at 12:57 PM, Vladimir Kozlov
<Vladimir.Kozlov at sun.com> wrote:
> Yes, for older jdk versions you have to use "/" and "," as Chuck said
> and for jdk 7 they both work.
>
> Vladimir
>
> Chuck Rasbold wrote:
>>
>> I suggest using / as a separator like so:
>>
>>
>> -XX:CompileCommand=print,sun/nio/cs/ext/EUC_TW_C_d_b_codeToBuffer4/Decoder,decodeArrayLoop
>>
>> -- Chuck
>>
>>
>>
>> On Thu, Nov 19, 2009 at 10:37 AM, Vladimir Kozlov <Vladimir.Kozlov at sun.com
>> <mailto:Vladimir.Kozlov at sun.com>> wrote:
>>
>>    Separate method name by "::" instead of ".":
>>
>>    ::decodeArrayLoop
>>
>>    And, it seems, we have bug here since it can't parse the class
>>    name with more then one dot without specified method name:
>>
>>    % gamma -XX:CompileCommand=print,sun.nio.cs -Xcomp t
>>    VM option 'CompileCommand=print,sun.nio.cs'
>>    CompilerOracle: unrecognized line
>>     "print sun nio cs"
>>
>>     Unrecognized text after command:  cs
>>
>>    Vladimir
>>
>>
>>    Ulf Zibis wrote:
>>
>>        Vladimir, thanks for your answer.
>>
>>        I tried:
>>
>>  -XX:CompileCommand=print,sun.nio.cs.ext.EUC_TW_C_d_b_codeToBuffer4.Decoder.decodeArrayLoop
>>
>>
>>        ... but got:
>>        CompilerOracle: unrecognized line
>>        VM option
>>
>>  'CompileCommand=print,sun.nio.cs.ext.EUC_TW_C_d_b_codeToBuffer4.Decoder.decodeArrayLoop'
>>
>>         "print sun nio cs ext EUC_TW_C_d_b_codeToBuffer4 Decoder
>>        decodeArrayLoop"
>>         Unrecognized text after command:  cs ext
>>        EUC_TW_C_d_b_codeToBuffer4 Decoder decodeArrayLoop
>>
>>
>>        java.vm.version : 17.0-b05-fastdebug
>>
>>        -Ulf
>>
>>
>>        Am 19.11.2009 18:58, Vladimir Kozlov schrieb:
>>
>>            Don't use '*' in class name if you want to look on one
>>            particular class. You correctly used CompileCommand=print but
>>            don't specify PrintOptoAssembly if you want to print only
>>            one method.
>>
>>            Vladimir
>>
>>            Ulf Zibis wrote:
>>
>>                Yes,  "-XX:+PrintOptoAssembly" option works on Windows
>>                too (using fastdebug-build). :-)
>>                Now I get very loooong output, so next question is, how
>>                to reduce the output to a single method???
>>                I've tried "-XX:CompileCommand=print,*...", but as
>>                expected, it was ignored.
>>                When "-Xbatch" is needed?
>>
>>                BTW, there is no docu for "-XX:+PrintOptoAssembly" on
>>
>>  http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
>>
>>                -Ulf
>>
>>
>>
>>                Am 18.11.2009 18:13, Dennis Byrne schrieb:
>>
>>                    It works on Windows but it is not quite as low level
>>                    as PrintAssembly.
>>                     For example you will see things like "fastlock" or
>>                    "MEMBAR-release"
>>                    but not the actual instructions behind these
>> operations.
>>
>>                    Dennis Byrne
>>
>>                    On Wed, Nov 18, 2009 at 10:56 AM, Clemens Eisserer
>>                    <linuxhippy at gmail.com <mailto:linuxhippy at gmail.com>>
>>                    wrote:
>>
>>                        Hi Ulf,
>>
>>                        As far as I know the fastdebug-builds support
>>                        this right out of the
>>                        box, it can be enabled using the
>>                         "-XX:+PrintOptoAssembly" option.
>>                        However I don't know wether this works on
>>                        Windows too.
>>
>>                        - Clemens
>>
>>                        2009/11/18 Ulf Zibis <Ulf.Zibis at gmx.de
>>                        <mailto:Ulf.Zibis at gmx.de>>:
>>
>>                            Am 18.11.2009 10:21, Christian Thalinger
>>                            schrieb:
>>
>>                                I could upload plugins for Linux and
>>                                Solaris (both 32 and 64-bit) based
>>                                on binutils-2.19.1.  I actually never
>>                                tried base-hsdis.
>>
>>
>>                            Would be great!
>>
>>                            Any volunteer to build the windows plugin ?
>>                            (I not experienced in GNU build environment
>>                            on Windows and don't possess MS
>>                            Visual Studio 2008 enterprise licence)
>>                            Maybe by help of mingw cross compiler on linux.
>>
>>                            Would be extremely great!!!
>>
>>
>>
>>                                Please, feel free to edit the wiki page
>>                                for clarity or to fill in missing
>>                                information.
>>
>>                            Done.
>>
>>                            -Ulf
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>



-- 
Dennis Byrne


More information about the hotspot-dev mailing list