是否可以反编译Java应用程序并使用反编译的代码对其进行调试?
我对使用反编译代码进行调试的能力更感兴趣,而不是反编译本身(这很简单)。
正如其他许多人已经指出的那样,确实有可能。
如果您只想反编译JAR并通过直接运行它们来调试反编译的类(即,将它们用作源),则有很多反编译器将为您提供良好的服务。
如果您打算调试应用程序中使用的JAR,请在选择反编译器时注意适当的源代码行号对齐功能。以这个问题为例。您可以得到如下这样的反编译代码:
Line X /* Line Y */ int x = y
Line Y (anything can be here, it could even not exist)
X和Y的值完全不同。这意味着反编译的.java文件中的X行对应于已编译代码的Y行。调试jar时,必须在源文件的Y行放置一个断点才能在此处停止。调试起来很烦人。有反编译器将根据行号对齐源文件中的反编译代码。
Line X /* Line X */ int x = y
我已经使用JD-Eclipse Realign在Eclipse上取得成功。相信我,使用源代码行对齐来调试反编译代码确实有所不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句