博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse中的Debug
阅读量:5012 次
发布时间:2019-06-12

本文共 1392 字,大约阅读时间需要 4 分钟。

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

 

参考:

转载于:https://www.cnblogs.com/cage666/p/7352075.html

你可能感兴趣的文章
【 D3.js 高级系列 — 8.0 】 打标
查看>>
Mac必备软件推荐
查看>>
Android Gson深入分析
查看>>
display:flow-root
查看>>
判读字符串是否为空的全局宏-分享
查看>>
iOS中Block的基础用法
查看>>
mac 终端 使用ftp命令
查看>>
22-reverseString-Leetcode
查看>>
Centos 开机自动联网
查看>>
cocos2dx使用lua和protobuf
查看>>
使用Spring配合Junit进行单元测试的总结
查看>>
HDOJ 5630 Rikka with Chess
查看>>
netcore2.1 在后台运行一个任务
查看>>
PostgreSQL pg_hba.conf 文件简析
查看>>
android o logcat read: unexpected EOF!
查看>>
[Scrum]2010/12/28 —— 第一天!
查看>>
ASP.NET MVC模式 温习(一)排除MVC模式误区
查看>>
Mysql的read_only 只读属性说明 (运维笔记)
查看>>
DOCKER 从入门到放弃(五)
查看>>
Python 多线程学习
查看>>