Je travaille sur i386 intel, Ubuntu 14. Les informations version OpenJDK montré par $java -version
estl'option PrintAssembly sur la JVM Hotspot est activé mais ne montrant aucune trace de montage
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.2) (7u65-2.5.2-3~14.04)
OpenJDK Server VM (build 24.65-b04, mixed mode)
Comme mentionné here j'ai copié le fichier binaire requis hsdis-i386.so
aux endroits suivants
/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/server
et
/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client
Ensuite, j'ai suivi this blog pour contourner le problème et essayer d'obtenir un code d'assemblage d'un programme Java. Je ci-dessous commande pour tester un programme java exemple MyClass.java
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:PrintAssemblyOptions=hsdis-print-bytes -XX:CompileCommand=print,MyClass MyClass
Le message que je suis arrivé sur la console est
OpenJDK Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
CompilerOracle: unrecognized line "print Test"
c = 50
Où MyClass.java
est
public class MyClass{
public static void main(String [] args){
int a = 10;
int b = 40;
int c = a + b;
System.out.println("c = "+c);
}
}
Selon ma compréhension et regarder ci-dessus message, jvm est en mesure de localiser hsdis-i386.so
et ainsi de dire PrintAssembly is enabled
, mais il ne montre aucun code d'assemblage ou t là. S'il vous plaît aidez-moi à souligner l'erreur que je fais.
Eh bien, quelle devrait être la commande pour cela? Pourriez-vous élaborer un peu? – user1612078
@ user1612078 quelle commande pour quoi? –
Je veux dire, comment devrais-je utiliser l'option '-XX: + PrintCompilation'? – user1612078