[英]Attaching source for some classes in a jar
对于我们的项目,我们正在进行逆向工程。 为此,我们必须调试第三方jar。
我尝试用DJ,JAD反编译该jar,但输出是带有编译时错误的源代码(例如,方法原型中的返回类型为boolean,但返回int,为循环中断等)。
现在,在这个损坏的源代码中,有几个.java文件,我想调试。 我想在jar中附加这几个文件的源代码和相应的类。
我用谷歌搜索,但没有发现任何有用的东西。 ????
阻止程序是反编译器很可能无法使用正确的行号重写源文件。 因此,即使已编译的库具有适当的行号信息,也不能使用开箱即用的反编译输出。
您可以在方法中设置断点(只要编译的类文件中有行号信息),即使没有源代码也是如此。 您甚至可以读取局部变量的值(同样,如果已经使用调试信息编译了类),但是您必须查看反编译器输出并希望最好,反编译方法足够接近真实的代码。
这不是不可能,但需要一些“手动”工作。
要在java代码中附加类的源代码:
右键单击所需的类
转到公开声明[F3]
类文件编辑器将打开单击Attach Source按钮
浏览具有源代码的jar
单击<确定>
完成上述步骤后,打开声明将打开具有源代码的.class文件。
您没有提到您用于调试的IDE。 如果尝试调试仅在类窗体中可用的类,Eclipse会询问源代码。 主要问题是Andreas_D已经提到了不匹配的行号。
我会尝试以下方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.