Hierarchy method renaming fails on classes with outdated opcodes JSR/RET
See original GitHub issueWhen remapping methods on small inputs, the method hierarchy is renamed successfully. When introducing a thousand or so extra/unrelated classes renaming the same method fails to update the hierarchy
Linked method renaming feature success is conditional
To Reproduce Steps to reproduce the behavior:
- Compile recaf from src and then use the smaller jar as input.
- Use Linked method renaming and rename
me/coley/logging/Logger.write(Ljava/lang/String;)V
to anything- It should rename, and so should
me/coley/logging/ConsoleLogger.write(Ljava/lang/String;)V
- It should rename, and so should
- Use the larger jar with dependencies as input.
- Use Linked method renaming and rename
me/coley/logging/Logger.write(Ljava/lang/String;)V
to anything- It does not rename, and nor does
me/coley/logging/ConsoleLogger.write(Ljava/lang/String;)V
- It does not rename, and nor does
Issue Analytics
- State:
- Created 5 years ago
- Comments:5 (3 by maintainers)
Top Results From Across the Web
jdk/jdk: c90ca650da3f
files, src/java.base/share/classes/jdk/internal/org/objectweb/asm/ ... This method will be renamed when it becomes stable, this + * will break existing code ...
Read more >bfd/doc/bfd.info - native_client/nacl-binutils - Git at Google
The easiest way to report a BFD error to the user is to use. `bfd_perror'. ... `BFD' has an instance of this class...
Read more >Making Software More Reliable by Uncovering Hidden ...
ticed, tests can unexpectedly fail when executed out of order, causing unreliable ... 4.7 Key API methods, classes and interfaces exposed by PHOSPHOR...
Read more >Index ([net.sf.proguard] proguard-base 6.2.0 API) - javadoc.io
This ClassVisitor renames the class names and class member names of the classes ... Log a failed call to one of the constructor...
Read more >Static Single Assignment for Decompilation
pointer thus moves down the class hierarchy. The reciprocal process is called upcasting. In some cases, downcasting or upcasting will result in the...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Thanks for the suggestion, I’ve just started trying out recaf and so far love the work you’ve put into it!
So the actual issue was there were certain classes in the jar that were compiled with an older version and hence contained older opcodes that are no longer supported. Recaf tried to generate stack-frames for the opcode which failed due to ASM’s implementation.
Possible future approaches:
COMPUTE_FRAMES
even when the option is enabled