Eclipse断点调试【图解教程】

详解Eclipse断点

大家肯定都用过Eclipse的调试的功能,在调试的过程中自然也无法避免要使用断点(breakpoint),但不知是否对Eclipse中各类断点都有所了解。本篇图文并茂地介绍了Eclipse中全部类型的断点,及其设置,希望对大家有所帮助。

1. 示例程序

BreakpointDemo是一个臆造的应用程序,只是为了便于讲解Eclipse中各类断点的使用罢了。其代码如下图所示,

BreakpointDemo主要包含两个方法:

[1]setValue,该方法根据指定的次数(count),对成员变量value进行赋值,值的范围为0-9的随机整数。

[2]printValue,该方法会调用setValue()对value进行赋值,并打印出value的值;但,如果value能被3整除,那么就会抛出IllegalArgumentException异常。

2. Line Breakpoint

Line Breakpoin是最简单的Eclipse断点,只要双击某行代码对应的左侧栏,就对该行设置上断点。此处,对第20行代码设置上Line Breakpoint,如下图所示,

可以为Line Breakpoint设置一个条件,那么当程序运行到该断点时,只有满足设定的条件,才会被中断。右键点击第20行的断点,选择”Breakpoint Properties…”

在弹出的属性对话框中,勾选上”Conditional”,然后在文本框中输入”count % 2 == 0”。

该条件表示,当程序运行到第20行时,只有当count为偶数时,程序才会被中断。细心地话,你会发现该断点的图标发生了改变,多了一个问号。

3. Watchpoint

Line Breakpoint关注于程序运行的”过程”,大家也常把使用这种断点的调试称为单步调试。但有时候,我们对程序的运行过程不太了解,可能也不太关心,不能确定在什么地方设置断点比较合适,而可能比较关注某个关键变量的变化或使用。此时,就可以为该变量设置一种特殊的断点—Watchpoint。在此示例,我们最关心的就是成员变量value的值,那么就可以为它设置一个Watchpoint,双击第9行代码对应的左侧栏就可以了。

使用在2中所提及的方法,查看该断点的属性,

默认地,当该变量被访问或它的值被修改时,程序都会被中断。但在本示例中,只希望当对value的值进行修改时程序才需要被中断,所以取消对”Access”的勾选。

这时,我们会发现原来的Watchpoin图标也有变化了。

4. Method Breakpoint

与关注对某个变量的访问与修改一样,我们也可以关注程序对某个方法的调用情况,即,可以设置Method Breakpoint。在此处,设置针对方法setValue的Method Breakpoint。同理,双击第11行代码对应的左侧栏即可。

仍然要查看该断点的属性。默认地,只勾选了”Entry”,而没有勾选”Exit”。

这表示,当刚进入该方法(调用开始)时,程序会被中断;而,离开该方法(调用结束)时,程序并不会被中断。在本示例中,需要同时勾选上”Exit”。

点击OK之后,可以看到该断点的图标也有所改变。

根据这里的设置,当程序运行到第20行后会在第12行被中断,尽管这里没有显式的断点,但这就是setValue()方法的入口(Entry)。必须注意地是,程序在运行到第16行时不会被中断,尽管它看起来像是setValue()方法的出口(Exit)。实际上,程序会在第17行被中断,这里才是 setValue()调用结束的地方。

5. Exception Breakpoint

如果,我们期望某个特定异常发生时程序能够被中断,以方便查看当时程序所处的状态。通过设置Exception Breakpoint就能达到这一目标。本示例故意在第23行抛出了IllegalArgumentException异常,我们期望程序运行到此处时会被中断。但我们不直接为此行代码设置Line Breakpoint,而是为IllegalArgumentException设置Exception Breakpoint。设置Exception Breakpoint的方法与其它类型断点都不同,它不能通过双击左侧栏的方式在代码编辑器上直接进行设置。点击Breakpoints视图右上角形如 Ji的图标,

会弹出如下所示的对话框,

在其中选中IllegalArgumentException,并点击OK,这时一个Exception Breakpoint就设置好了。

当value为3的倍数时,程序会在第23行被中断,这时我们就能使用调试器来看看value具体是等于0,3或6。

6. Class Load Breakpoint

还有一种大家平时可能不太用的断点—Class Load Breakpoint,即当某个类被加载时,通过该断点可以中断程序。

小结

上述的Eclipse断点,我们在现实工作中肯定都有意或无意地使用过其中的几种,只是不一定十分了解内情罢了。使用好Eclipse的各种断点,可以把很好地帮助我们分析程序,定位问题。

时间: 2024-09-30 20:38:36

Eclipse断点调试【图解教程】的相关文章

eclipse断点调试

问题描述 eclipse下的一个项目采用的springwebworkhibernate框架前几天使用,能正常进入设置的断点,每次刷新freemarker页面也能正常进入.后来框架进行了一次升级操作(不知道是不是这个原因导致),升级完有一段时间没有用过调试功能.今天发现用调试的时候进入不了设置的断点.clean项目后,重启jetty服务可以击中一次,但是再刷新就没用了,击不中.修改后台输出测试代码也没有显示修改后的东西,又要重启jetty才能看到修改结果.换了几个版本的eclipse也是一样,用另

关于eclipse断点调试的问题,第一次用,以前都是用system.out.println

问题描述 加断点一步一步向后走,到一个地方,resume,disconnect,step into,step over,step return都变成灰色了,只有suspend可用,但是暂停之后,再resume,再次step over的时候又停了,不能step over了.还是只有suspend可用.请问怎么让它继续啊?第一次是因为没加jdk里的src.zip文件,现在添加了,到了一个ThreadPool类处又停止了(位置C:Program FilesJavajdk1.5.0_22binjavaw

安卓-AndroidStudio(eclipse)如何断点调试进入onClickListener

问题描述 AndroidStudio(eclipse)如何断点调试进入onClickListener 在真机上断点调试时,到了监听器的部分,就跳过了,然后就进入了looper.如何进入监听器?在真机上按并没有反应 解决方案 android studio 下操作步骤如图: 先启动你的app 1.鼠标左键单击蓝框位置,即可打上断点 2.点击红框位置图标 3.在弹出框中选择当前app的进程点击ok按钮 4.在界面上点击你打断点位置的那个按钮. 执行上述4个步骤即可实现你的问题. 解决方案二: 你在on

调试-eclipse 断点debug不了

问题描述 eclipse 断点debug不了 今天用eclipse开发项目时,发现断点突然调试不下去了,不往下一行走,报错如下: eclipse设置如下: build.xml配置如下: 求大牛解惑 解决方案 是不是eclipse里的源代码跟编译后运行的class/jar包文件版本不一致造成的? 版本不一致,导致行号对不上. 一般情况下eclipse中断不进去都是这类原因. 解决方案二: eclipse没设断点还会debug的解决Eclipse Debug方法,命中次数与条件断点eclipse--

eclipse工具断点调试问题

问题描述 eclipse工具断点调试问题 如图所示,请问是为什么呢?两种形式的断点有什么区别啊? 解决方案 后者为断点记录,记录你以前使用/添加过断点的位置,而并没有启用该断点,此种断点有两种操作:1,启用. 2,移除 不知道这个版本的eclipse是怎样操作的,应该都是点击断点就可以切换断点状态的 解决方案二: 断点有启用和不启用之分,eclipse上debug时会有,仔细看看,有个enable选中没有 解决方案三: 你在break 语句出打断点,后面没有语句块了,当然不会进入了.这个断点没有

01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型

一.eclipse工具的使用 1. java代码的位置        1) 选择工作空间 workspace  选择一个文件夹存放程序(代码) 不要用中文和空格        2) 新建一个java 工程(Project)        3) 建包建类   2. 快捷键        alt + / :代码自动补齐,需要配置的               打开preferences(首选项), 搜keys,打开快捷键配置面板               搜 alt+/ ,取消绑定        

eclipse的断点调试 问题

问题描述 eclipse的断点调试 问题 在开发过程中在DEBUG模式下设置断点,断点停止后程序无法进行单步调试及继续调试,必须将断点取消,在进行下一步运行,大家知道是什么原因吗 解决方案 我也用 eclipse, 没遇到过问题啊.F6 或者 单击单步调试 没用么? 解决方案二: 我也用 eclipse, 没遇到过问题啊.F6 或者 单击单步调试 没用么? 解决方案三: 大家有谁可以帮我解释下么 谢谢了 解决方案四: 还是没有明白你的意思,断点停止和断点取消指什么? 解决方案五: 有的时候,他会

Fiddler抓包使用教程-断点调试

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/62896784 本文出自[赵彦军的博客] Fiddler 里面的断点调试有2种方式. 一种用工具栏中的按钮来设置断点,特点是会拦截所有的请求. 一种用命令行的形式来设置断点 , 特点是拦截某个请求. 工具栏断点 Before Requests : 在请求前断点 After Responses : 在服务器响应之后断点. Disabled : 禁止断点 命令行断点 bpu url :

我的通过eclipse来调试jsp的过程

js|过程     当你不知道的时候,觉得一切都是正常的.直到有一天得知(但忘了是从哪儿知道的了,或者是谁告诉我的?),eclipse可以调试jsp,那一刻的心情就像久陷囹圄的囚犯获得了自由,于是马不停蹄的上网,从每个网页寻找有用的资料.     简要说一下,我们的开发环境是jsp+servlet+tomcat+oracle,对页面的操作也特别多,所以我们每个人都有两大痛处:javascript和jsp.在js里的调试就是alert,在jsp以及servlet里就靠writelog了.编译不通过