admin管理员组文章数量:1647196
2024年1月6日发(作者:)
1 MyEclipse debug
1.1 为什么要Debug
在开发系统过程中,常遇见一个功能的处理逻辑复杂、交互数据繁多和多次调用接口的情况;这时我们按照设计编写代码,运行代码,当运行结果和预期结果不一致时,我们想知道程序的每一步具体是怎么执行的,在哪一步与预期不一致。所以我们需要逐行跟踪代码的执行,找出有问题的代码行,分析执行情况,直至修改正确也即消除错误,这一过程称debug。
1.2 Debug 模式
我们平常打开MyEclipse都是企业开发模式视图,现在了解下debug模式视图,打开debug视图;可单击如下图示的位置:
Debug视图:
如图示;在debug视图下有4个主要窗口:
① 左上的Debug窗口;主要查看当前程序所在的线程,对线程可以终止、重启;终止后则不再执行程序也就不debug程序下去,重启则重新运行程序并定位在第一个断点处。
② 右上的断点状态窗口,包括了Variables,Breakpoints,Expressions三个子窗口。Variables 窗口主要查看在断点行之前的所有有效变量;Breakpoints 窗口显示整个项目中所有的断点(包括断点所在位置);Expressions 窗口主要查看用户自定义的变量,如在程序中选中某个变量然后右击选择“Watch”后,则变量将会在Expressions窗口中显示其名称和值。
③ 左下的程序窗口,即当前正在调试的类并定位在正要执行的代码行。
④ 右下的类结构窗口
1.3 Debug常用快捷键及功能
为了方便在调试程序时,控制程序的执行时序;MyEclipse为调试设置了常用的快捷键。
常用快捷键及功能:
① 双击代码行左边的标识栏则可设定一个断点(ctrl + shift +b)
② F5进入本行中引用的方法中执行
③ F6 继续执行下一步
④ F7 执行完方法,返回到进入到该方法中的最后一行语句(跳出F5进入的方法)
⑤ F8 到下一个断点处,如果没有下一个断点则执行到程序结束
⑥ Step filter 逐步过滤,在window-preferences-java-Debug-step
Filtering 中可设置不需要调试的类或者包。当在调试时如运行到配置了step filter的类时,按F5是不会进入该类方法调试的。该设置常用于一些第三方类库或者JDK基类等源码的调试过滤,因这些代码基本上是无误的;不需要进入其方法进行调试。
上图中,如果在其它类中调用了HelloWorld中的方法,而在断点调试时按F5不能进入HelloWorld对应方法调试。
⑦ Inspect 在调试时,在程序中选取特定表达式,右击选择“inspect”则可查看表达式的执行值
⑧ Watch在调试时,在程序中选取特定对象、变量,右击选择“watch”则可实时监视其值变化。
⑨ Method breakpoint方法断点,双击方法左边的标识栏,将断点设置在方法上,则相当于将断点设置在该方法可断点的第一行。
下面是断点的属性功能,右击断点,选择“Breakpoint Properties…”
⑩ Enable 右击行断点,打开页面中如果不勾选 enable 则说明该断点是无效的,程序不会停在该断点处。
⑪ Hit count 执行次数,一般使用在循环体内的语句,当满足执行次数时程序停在循环体内设置了改hit count的断点处;如:
如果这样设置了断点属性,则执行for循环时,只有当i为3时才停在输出语句处,因为i的值为3时,已经执行4次了。
⑫ Suspend thread 挂起线程,即执行到该断点时只挂起当前线程,不影响其它线程的执行。
⑬ Suspend VM 挂起jvm,即执行到该断点时同时挂起其它线程,该行代码不执行完其它线程无法执行。(在子线程中的断点设置该项无效)
图中所设,如果第22行的输出语句在j=19的时候,thread1和thread2的任务还没执行完,那么这2个线程未完成的任务将也暂停不能继续执行,直到执行完该次断点。
⑭ Conditional 条件断点; 可以对该断点设定特定的条件,条件的值必须为布尔值;即当满足该条件则挂起停在断点处。
图中所示的条件为i==4,这个和hit count == 5 效果一样。
1.4 初试断点
在一个循环体中设置条件断点,查看程序的运行情况。
1.5 常设断点位置
在设置断点时,一般将断点设置在程序判断条件复杂,业务处理逻辑处理复杂和容易出现问题的语句上。
在一个多重循环或者大数据量的循环中,可以在循环条件上设置条件断点;当循环条件满足断点设置的条件时才进行断点调试。
1.6 断点调试
在导入excel的操作中利用断点查看用户上传的excel文件名称是否规范和有没通过正则表达式的验证。
另外;在导出用户的过程中,检查是否有生日为空的用户。
版权声明:本文标题:MyEclipse Debug调试工具的使用 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1704527653a95539.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论