首页 技术 正文
技术 2022年11月19日
0 收藏 844 点赞 2,459 浏览 1328 个字

一、Debug的基本过程

  1. 设置断点(双击待设断点左边行号处)
  2. 进入Debug模式(在待调试类上右键>调试方式,根据需求选择)
  3. 开始调试

二、Debug中的常用操作

  1. 继续执行【F8】:继续运行程序,直到下一个断点时挂起。
  2. 单步跳入【F5】:执行下一行有效代码,检测到调用方法时,进入被调用的方法。
        • (有效代码:本次运行中要执行的代码。比如if判断条件为false时,if{}内即为无效代码)
  3. 单步跳过【F6】:执行下一行有效代码。
  4. 单步返回【F7】:执行完当前方法(直到断点处),返回到调用处(如果有)。(无调用者时,F7无效)
  5. 单步执行过滤器:激活后,在单步执行(F5/F6/F7)时,遇到被过滤的部分,将不会停下,继续执行。一般将JDK或者其他库中的底层代码过滤掉,也可以过滤自己的代码库中的框架部分代码。(设置:窗口>首选项>Java>调试>单步执行过滤)
  6. 暂挂/恢复:暂时挂起一个线程。一般用于多线程程序的调试。
  7. 拖放至帧:回到当前方法的开始处重新执行,之前执行过程中变量的变化全部重置为开始时的状态,但在程序外产生的作用不可逆(比如数据库操作、文件操作等)。可以配合修改代码、改变变量值等,反复调试关注的某一段代码。【其实不止是当前方法,还可以通过点击当前调用栈中的任意一个帧(起始帧除外),跳到那里】
  8. 终止:强行关闭所有线程,结束本次调试。

三、断点简述

1.断点类型

  1. 行断点:执行到该行时暂挂。最普通的断点形式,在行号处双击添加。
  2. 方法断点:进入/退出方法时暂挂。将断点打在方法的入口处。特点:可以将断点打在JDK源码中(行断点不行),从而查看方法的调用栈。
  3. 异常断点:发生异常时暂挂。运行>添加Java异常断点,或点击添加异常断点。可用占位符*和?,分别表示任意字符串和任意字符。
  4. 类加载断点:加载指定类时暂挂。 运行>添加类装入断点,来添加类加载断点。在调试类加载(静态方法、静态代码块等)时使用。
  5. 变量观察点:指定成员变量发生指定变化时暂挂。在声明成员变量处的行号双击添加。可以选择在该变量访问、修改或达成指定条件时挂起。

2.断点属性

在断点上右键>断点属性来设置。上述断点均可设置这些属性,来改变暂挂的方式。

  1. Hit Count:执行次数。设置后,在程序第X次执行到此断点时暂挂。用于循环中的调试。
  2. Trigger Point:触发点。设置后,只有在该断点被触发后,其他断点才生效。
  3. 暂挂方式:挂起线程/挂起VM。前者一般用于多线程时暂挂该线程(单线程也可使用,与挂起VM效果相同)。
  4. Conditional:条件断点。设置后,仅当满足指定条件时暂挂。可选两种:条件为真/变量值改变。选择“条件为真”时,应在条件栏中填写条件表达式;选择“变量值改变”时,应在条件栏中填写变量表达式。

四、其他技巧

1.在main方法的第一行停止:运行>调试配置,选择“在main中停止”。设置后,程序运行到main函数的第一行时暂挂。

2.表达式:可以对自己的感兴趣的一些变量进行观察,也可以增加一些自己的表达式,也可以查看一行代码的运行结果。窗口>显示视图>表达式,打开表达式视图,然后可以添加表达式、观察动态。要对表达式求值时,选中一行,在要求值的地方右键>检查。

参考:Eclipse 调试器:零距离接触实战技巧

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,985
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,501
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,345
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,128
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,763
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,839