I am trying to use JITView in a software project that is compiled using openjdk-25.0.1. I have managed to add my sources and can see some of the sourcecode in TriView, but some other classes just randomly fail.
I can see in the Logs that the BytecodeLoader navigates itself into an invalid state and then crashes. And without bytecode parsing there is no sourcefile lookup :(
When comparing the Log output of the Bytecodeloader with the output of javap -c <class> it looks to me like they are parsing completely different files, it is barely recognizable. Is there some special flags needed for JDK 25 to support loading the classes in JitView? Or is there some quirk in my compilation that I do not recognize (and somehow only affects some of the classes in the project).
Log from jitwatch.out:
2025-11-19T20:25:56.643155900Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: 'descriptor: (I)V'
2025-11-19T20:25:56.643155900Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: 'flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC'
2025-11-19T20:25:56.643155900Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: 'Code:'
2025-11-19T20:25:56.643155900Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '0: ldc #172 // String Argument for @NotNull parameter \'%s\' of %s.%s must not be null'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '2: iconst_3'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '3: anewarray #8 // class java/lang/Object'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '6: dup'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '7: iconst_0'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '8: ldc #173 // String type'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '10: aastore'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '11: dup'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '12: iconst_1'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '13: ldc #174 // String io/github/mzmine/modules/dataprocessing/featdet_massdetection/factor_of_lowest/FactorOfLowestMassDetector'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '15: aastore'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '16: dup'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '17: iconst_2'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '18: ldc #175 // String getMassValues'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '20: aastore'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '21: invokestatic #181 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '24: new #183 // class java/lang/IllegalArgumentException'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '27: dup_x1'
2025-11-19T20:25:56.644155300Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '28: swap'
2025-11-19T20:25:56.645156600Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '29: invokespecial #186 // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V'
2025-11-19T20:25:56.645156600Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '32: athrow'
2025-11-19T20:25:56.645156600Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: '}'
2025-11-19T20:25:56.645156600Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader Line: 'SourceFile: "FactorOfLowestMassDetector.java"'
2025-11-19T20:25:56.645156600Z ERR org.adoptopenjdk.jitwatch.loader.BytecodeLoader could not parse bytecode: '}'
I have shared the (apparently .class is not an allowed filetype for github issue attachments) corresponding classfile here: https://drive.google.com/drive/folders/10HVHicsbMg-JRwenoDWGn9xeQy0cTL5V?usp=sharing
I am trying to use JITView in a software project that is compiled using
openjdk-25.0.1. I have managed to add my sources and can see some of the sourcecode in TriView, but some other classes just randomly fail.I can see in the Logs that the BytecodeLoader navigates itself into an invalid state and then crashes. And without bytecode parsing there is no sourcefile lookup :(
When comparing the Log output of the Bytecodeloader with the output of
javap -c <class>it looks to me like they are parsing completely different files, it is barely recognizable. Is there some special flags needed for JDK 25 to support loading the classes in JitView? Or is there some quirk in my compilation that I do not recognize (and somehow only affects some of the classes in the project).Log from jitwatch.out:
I have shared the (apparently
.classis not an allowed filetype for github issue attachments) corresponding classfile here: https://drive.google.com/drive/folders/10HVHicsbMg-JRwenoDWGn9xeQy0cTL5V?usp=sharing