Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6667042

PrintAssembly option does not work without special plugin

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 7
    • Fix Version/s: hs13
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
      svc
    • Resolved In Build:
      b01
    • CPU:
      generic
    • OS:
      generic
    • Verification:
      Verified

      Backports

        Description

        http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2007-August/000008.html


        The following HotSpot options (with -XX:) require an externally loadable disassembler module:
         +PrintAssembly print assembly code for bytecoded and native methods
         +PrintNMethods print nmethods as they are generated
         +PrintNativeNMethods print native method wrappers as they are generated
         +PrintSignatureHandlers print native method signature handlers
         +PrintAdapterHandlers print adapters (i2c, c2i) as they are generated
         +PrintStubCode print stubs: deopt, uncommon trap, exception, safepoint, runtime support
         +PrintInterpreter print interpreter code

        The original module ("dissassembler.so") was dynamically loaded and called via a private C++ interface.

        It was implemented in the late 1990's using an early version of the Gnu disassembler, gdb-4.16.

        Three factors made this age poorly.
        * The interface (C++ ABI) required close coupling between the JVM build toolchain and the disassembler.
        * The implementation of the disassembler was produced by forking a copy of binutils and editing it.
        * The implementation was not released to open source.

        It has been replaced by a plugin, also in a shared library, called via an ANSI C interface.
        An implementation of this interface on top of the current Gnu binutils is released as open source.
        It may be implemented in other ways also.

        Changes to JVM command line interface:
        * Enable these these options under UnlockDiagnosticVMOptions in product mode.
        * Make the CompileCommand 'print' use the external disassembler, if present.
        * -XX:CompileCommand='option',$method,'PrintOptoAssembly' produces the old print command output.
        * -XX:CompileCommand='option',$method,'PrintNMethods' continues to work

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                jrose John Rose
                Reporter:
                jrose John Rose
                Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: