1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mit Debugger interne HotSpot JVM Informationen auslesen in Java 7

Dieses Thema im Forum "Java" wurde erstellt von Thomas Darimont, 30. April 2012.

  1. Thomas Darimont

    Thomas Darimont Premium-User

    Hallo,

    Tool ClassDump: Mit diesem Tool kann man wohl dynamisch erstellte Class-Definitionen die nur In-Memory vorliegen (z.Bsp. DynamicProxy Klassen) auf die Platte schreiben lassen:
    Code (Text):
    1. C:\Users\tom>"%JAVA_HOME%\bin\java" -cp "%JAVA_HOME%\lib\sa-jdi.jar" sun.jvm.hotspot.tools.jcore.ClassDump 1104
    2. Attaching to process ID 1104, please wait...
    3. Debugger attached successfully.
    4. Server compiler detected.
    5. JVM version is 23.0-b21
    6.  
    7. C:\Users\tom>dir *.class
    8.  Datenträger in Laufwerk C: ist System
    9.  Volumeseriennummer: 22AD-4CCA
    10.  
    11.  Verzeichnis von C:\Users\tom
    12.  
    13. 01.05.2012  16:29             2.954 $Proxy1.class
    14. 01.05.2012  16:29             1.951 $Proxy2.class
    15. 01.05.2012  16:29             1.970 $Proxy3.class
    16. 01.05.2012  16:29            15.343 $Proxy4.class
    17. 01.05.2012  16:29             2.018 $Proxy5.class
    18. 01.05.2012  16:29             2.813 $Proxy6.class
    19.                6 Datei(en),         27.049 Bytes
    20.                0 Verzeichnis(se), 79.729.037.312 Bytes frei
    Gruß Tom
     
  2. genodeftest

    genodeftest Erfahrenes Mitglied

    Gibts dazu auch ne Übersicht des Herstellers ;) ?
     
  3. Thomas Darimont

    Thomas Darimont Premium-User

    Hallo,

    ich konnte bisher leider noch keine Anleitung dazu finden ... :)

    Gruß Tom
     
  4. Thomas Darimont

    Thomas Darimont Premium-User

  5. Thomas Darimont

    Thomas Darimont Premium-User

    Hallo,

    mir ist gerade aufgefallen, dass in Java8B114 ein nettes Command-Line-Interface (CLI) zum HSDB enthalten ist :)
    Code (Text):
    1. tom@gauss ~/Documents/dev/repos/labs/de.thomasdarimont.labs.java8
    2. $ java -cp /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
    3. hsdb> help
    4. Available commands:
    5.   assert true | false
    6.   attach pid | exec core
    7.   buildreplayjars [ all | app | boot ]  | [ prefix ]
    8.   detach
    9.   dis address [length]
    10.   disassemble address
    11.   dumpcfg { -a | id }
    12.   dumpcodecache
    13.   dumpideal { -a | id }
    14.   dumpilt { -a | id }
    15.   dumpreplaydata { <address > | -a | <thread_id> }
    16.   echo [ true | false ]
    17.   examine [ address/count ] | [ address,address]
    18.   field [ type [ name fieldtype isStatic offset address ] ]
    19.   findpc address
    20.   flags [ flag | -nd ]
    21.   help [ command ]
    22.   history
    23.   inspect expression
    24. ...
    Alle Threads auflisten:
    Code (Text):
    1. hsdb> attach 12553
    2. Attaching to process 12553, please wait...
    3. hsdb>
    4. hsdb>
    5. hsdb> threads
    6. 23299 Monitor Ctrl-Break
    7. 22275 Service Thread
    8. 21763 C1 CompilerThread3
    9. 21251 C2 CompilerThread2
    10. 20739 C2 CompilerThread1
    11. 20227 C2 CompilerThread0
    12. 19715 Signal Dispatcher
    13. 14595 Finalizer
    14. 14083 Reference Handler
    15. 6403 main
    Alle JVM Flags auflisten:
    Code (Text):
    1. hsdb> flags
    2. AbortVMOnException = null 0
    3. AbortVMOnExceptionMessage = null 0
    4. AdaptiveSizeDecrementScaleFactor = 4 0
    5. AdaptiveSizeMajorGCDecayTimeScale = 10 0
    6. AdaptiveSizePausePolicy = 0 0
    7. AdaptiveSizePolicyCollectionCostMargin = 50 0
    8. AdaptiveSizePolicyGCTimeLimitThreshold = 5 0
    9. AdaptiveSizePolicyInitializingSteps = 20 0
    10. AdaptiveSizePolicyOutputInterval = 0 0
    11. AdaptiveSizePolicyReadyThreshold = 5 0
    12. AdaptiveSizePolicyWeight = 10 0
    13. AdaptiveSizeThroughPutPolicy = 0 0
    14. AdaptiveTimeWeight = 25 0
    15.  
    16. ...
    Gruß Tom
     
Die Seite wird geladen...