如何debug没有源代码的class文件

 我来答
逆心小土豆
2017-08-29 · TA获得超过3618个赞
知道大有可为答主
回答量:2500
采纳率:0%
帮助的人:735万
展开全部
elipse的调试功能想必大家都已经很熟悉了,虽然通过jdb可以达到同样的目的,但可视化的调试工具会大大提高大家的效率。通过eclipse调试一 般的应用程序或是调试基于服务器的程序都非常的方便,设置完断点后点击debug按钮就OK了。今天给大家介绍下如何通过eclipse+jad对没有源 代码的class文件进行调试.
jad工具是一个非常优秀的java反编译工具,通过jad可将classs文件反编译,但是通过jad反编译的java文件的行位置与原class文件 对应不上,将会导致无法在eclipse中正确设置断点,通过研究,我得出了在没有源码的情况下设置断点的方法,总结后通过eclipse+jad调试没 有源码的程序主要有三步:

1.用jad反编译class后查看源文件
记得一定要带上-lnc参数,这样源文件中会有正确的行数作为注释显示出来。
2.使用breakpoints的import导入修改过的断点记录文件.
断点记录文件可通过导出后修改了再导入。如这个断点刻录文件:

breakpoint enabled=true persistant=true registered=true
resource path=homeAlonesrcjavacomhaajaxMMSenderTest.java
type=1
marker charStart=-1 lineNumber=760
type=org.eclipse.jdt.debug.javaLineBreakpointMarker
attrib name=org.eclipse.jdt.debug.core.typeName
value=com.huawei.mm7.vasp.pdu.MM7SOAPEncoder
attrib name=charEnd value=-1
attrib name=charStart value=-1
attrib name=org.eclipse.debug.core.enabled value=true
attrib name=org.eclipse.jdt.debug.ui.member_start
value=285
attrib name=org.eclipse.debug.core.id
value=org.eclipse.jdt.debug
attrib name=message
value=Line breakpointMM7SOAPEncoder [line 760] - main(String[])
attrib name=org.eclipse.jdt.debug.core.suspendPolicy
value=2
attrib name=org.eclipse.jdt.debug.ui.member_end value=297
attrib name=org.eclipse.jdt.debug.ui.JAVA_ELEMENT_HANDLE_ID
value==homeAlonesrcjava<com.ha.ajax{MMSenderTest.java[MMSenderTest
marker
breakpoint

注意修改:lineNumber属性为想要设置断点的行数,attrib name=org.eclipse.jdt.debug.core.typeName
的value设置为想要debug的class,其它属性基本不用修改。

2.debug
启动debug,运行至断点处会自动suspend,可查看,修改变量的值等debug操作。
笑喘是病得抽
2018-08-03 · TA获得超过925个赞
知道大有可为答主
回答量:2140
采纳率:98%
帮助的人:2234万
展开全部
可以查看一下eclipse中class文件的默认打开方式是否是JadClipse Class File Viewer。如果不是默认,可以在Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。设置完成后,双击*.class文件,eclipse将自动反编译
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式