Java反编译器,如何在实际物理位置保存行号?

10

许多集成开发环境的调试器与实际代码行号相对应。

我正在寻找一款能够在反编译代码时保存实际行号的Java反编译器。

http://java.decompiler.free.fr/不是其中之一。


它在注释中显示了行号。 - Bozho
我不确定我理解这个问题;您想要一个反编译器,可以从原始的.java源代码中复制原始行号吗? - Joseph Ottinger
1
注释中的行号并不能满足我的需求,因为IDE调试器无法绑定注释中的行号。 - qwazer
+1 我已经收藏了这个问题,因为我很久以前就在寻找它。有几个Java反编译器可用,但jad已经过时(无法处理Java 5),而且没有好的替代品出现。 - Aaron Digulla
我想,我可以编写自己的重新排序算法,输入带有行号注释的jd反编译文件,并输出重新排序的Java代码,可用于IDE调试器。也许我会在这个假期写这个小程序。 - qwazer
4
下一个版本的JD-Eclipse将包含此功能。当前版本无法将反编译的源代码与原始行号对齐,但由Alex Kosinsky编写的扩展程序会在源代码中添加空行。也许这可以帮到你。 http://java.decompiler.free.fr/?q=node/554 - Emmanuel Dupuy
5个回答

6

2
Github仓库:https://github.com/mchr3k/jdeclipse-realign - 在Eclipse 3.7/JAVA 6上运行得非常好;终于有一种简单的方式可以在没有源码的情况下进行调试! - Caspar

3

我实际上给JD-Eclipse添加了一个“对齐代码以进行调试”的功能,我已经使用了一年。

如果有人想要尝试,在Emmanuel Dupuy发布他自己的版本之前,你可以从这里获取它。更多详细信息请参阅README.txt。


2

2
注意:JadClipse在jad反编译源代码后重新排列源代码,尝试将行移动到它们应该在的位置(启用“对齐调试代码”)。有时候这样做是有效的。但由于JAD无法很好地处理Java 5中的所有新功能,因此它也经常会出现错误。 - Aaron Digulla

0

我已经尝试了我所知道的所有Eclipse反编译器,但我还没有看到过一个能够将原始行号与其显示的源对齐的反编译器。你提到的JD-Eclipse插件最接近于使用注释表示原始行号。可惜它不能混淆生成的源代码以对齐它们。通常最好的方法是找到原始源代码并将其附加到Eclipse上。否则,你只能在JD-Eclipse的注释中寻找行号。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接