hsdis output from JVMCI
Yasumasa Suenaga
yasuenag at gmail.com
Wed May 17 07:37:30 UTC 2017
Hi all,
I tried to disassemble JVMCI installed code via hsdis.
It works but I got duplicate output from hsdis.
How to reproduce:
1. Clone reproducer from GitHub
https://github.com/YaSuenag/jdt-2017-examples
2. Copy some files from hotspot testcase
Please read README.md in this repository.
3. Edit Makefile to use hsdis
- code-injection/Makefile
- Enable UnlockDiagnosticVMOptions and CompilerDirectivesFile
4. Deploy hsdis to JDK 9 EA b169
5. Run reproducer
$ make JAVA_HOME=/path/to/jdk9 syscall
hsdis is called from JVMCIEnv::register_method() and CodeInstaller::install().
So we get same output from hsdis twice.
I think we should fix it as following:
-------------------------
diff -r d6d7e5caf497 src/share/vm/jvmci/jvmciCodeInstaller.cpp
--- a/src/share/vm/jvmci/jvmciCodeInstaller.cpp Mon May 15 12:20:15 2017 +0200
+++ b/src/share/vm/jvmci/jvmciCodeInstaller.cpp Tue May 17 16:21:08 2017 +0900
@@ -623,7 +623,7 @@
if (nm != NULL && env == NULL) {
DirectiveSet* directive = DirectivesStack::getMatchingDirective(method, compiler);
bool printnmethods = directive->PrintAssemblyOption || directive->PrintNMethodsOption;
- if (printnmethods || PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers) {
+ if (!printnmethods && (PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers)) {
nm->print_nmethod(printnmethods);
}
DirectivesStack::release(directive);
-------------------------
Is this bug?
If so, I will file it to JBS and will upload webrev.
Thanks,
Yasumasa
More information about the hotspot-compiler-dev
mailing list