eclipse断点java没有断点_详解Eclipse断点(原)
发布日期:2021-10-30 21:00:32 浏览次数:2 分类:技术文章

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

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

1. 示例程序

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

e182798684c188b8a0459f8ee814dce7.png

BreakpointDemo主要包含两个方法:

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

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

2. Line Breakpoint

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

fd63abb292a1c3974dffe4e020552658.png

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

7882591826b5c7f7c23262e7d906a276.png

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

c817e467b524e51a3fb247ec1024e358.png

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

0d3a77118eb5b53f5b8e9b8089c3dbae.png

3. Watchpoint

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

c134a63691b227f90aaae46f8dfba103.png

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

8897170c4541dae590ac7a61cd2d888f.png

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

c7f03b0b864b7b7aa94e0106d0be65da.png

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

1a2afcb1033021736f6925a2dcbae035.png

4. Method Breakpoint

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

42fc9f3207be9ceea525fbb9953ab401.png

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

20e54a0c9a60c4fd248e4af7c0b73157.png

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

73ea4e02385575c18dcdba8dab4c9534.png

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

1b2d88d40abf46d335f27e3ffd9b9de6.png

根据这里的设置,当程序运行到第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的图标,

dec5b5b928550245350b88237f0a55e9.png

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

b802058f7463546ecafbaa13bf81d752.png

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

d6bd4460989cfcb4c5b87b6e76706986.png

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

6. Class Load Breakpoint

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

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

转载地址:https://blog.csdn.net/weixin_39861823/article/details/114138160 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java输出图形_java 输出图形
下一篇:java map 批量写到 csv_Java – 将hashmap写入csv文件

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月05日 00时53分09秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章