在进行Java开发或者学习时,不少人可能会使用Eclipse软件,当然开发过程中可能会遇到各种编译、运行出现错误的问题,这时我们就需要对代码进行Debug,检查到底哪里出了问题。因此,熟练掌握开发环境的Debug工具很有必要。本人在使用java时就很少使用Debug工具,现边记录边学习吧。
    对于Intellij的使用及调试,之后在了解,在此标记!
工具:Eclipse    Version:Oxygen.2 Release(4.7.2)
方法/步骤:
    来源:  https://jingyan.baidu.com/article/647f0115d666b27f2148a8b1.html
(1) 首先要设置断点:在代码需要调试的那一行,用鼠标双击代码行号的左边。注意: 再次双击即可取消断点。例如:
   (2) 启动服务开始调试:(有至少以下几种方法可用)
            方法1,例如在上图的代码中,鼠标点击main方法 --> 右键 --> Debug As --> Java Application,开始调试; 
            方法2,直接点击“调试”按钮,即点击小瓢虫边上的倒三角,选择 Debug As-->Java Application;或者选择列表中相应的类名点击进行调试;
            方法3,快捷键F11;
            方法4,菜单栏选择Run-->Debug;
            等等。
        注意:开发工具首次调试会弹出提示,需要切换到Debug工作区,勾选“Remember my decision”,下次便不再提示。
    (3)以debug方式运行java程序后,跳转到调试视图(例如下图)。
            其中最常用的窗口有:Debug窗口,变量Variables窗口,断点Breakpoints窗口,代码编辑窗口,输出Console窗口,大纲outline窗口。
Debug窗口显示当前线程方法调用栈,及方法执行到第几行:
Variables显示当前方法的局部变量,非静态的变量等,可以修改变量值:
Breakpoints可用来新增和删除断点等:
Console控制台用于查看打印的日志信息:

(4)重点来了, Debug视图作用:可以用来调试和运行程序,下图是常用的debug按钮,还有相应的快捷键。

按钮符号解释:
<1> Skip All Breakpoints,忽略所有的断点,即运行代码时直接跳过设置的断点往后继续运行。再次点击该按钮,则不会忽略设置的断点;快捷键(Ctrl+Alt+B);
<2> resume,表示当前继续执行代码,直到遇到下一个断点;快捷键F8;
<3> Suspend,暂停;
<4> Terminate,表示停止调试;快捷键(Ctrl+F2)
<5> Disconnect,
<6> Step Into,表示进入当前方法内部,一步一步执行,快捷键(F5);
<7> Step Over,表示运行下一行代码,执行当前行,但不进入执行细节,快捷键(F6);
<8> Step Return,表示退出当前方法,返回到调用层,快捷键为(F7)。
调试过程中Debug视图有很多堆栈信息,另外调试中鼠标移到代码编辑窗口,放在变量上时会显示当前变量的值。
补充:
   <9> Drop to Frame,这个功能可以重新跳到当前方法的开始处重新执行,并且所有上下文变量的值也回到那个时候。不一定是当前方法,可以点击当前调用栈中的任何一个frame跳到那里(除了最开始的那个frame)。
        主要用途是所有变量状态快速恢复到方法开始时候的样子重新执行一遍,即可以一遍又一遍地在那个你关注的上下文中进行多次调试(结合改变变量值等其它功能),而不用重来一遍调试到那里了。当然,原来执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记录)。
        这里也说了如何使用这个功能:http://www.javalobby.org/forums/thread.jspa?threadID=15271&tstart=0
    (  来源: https://blog.csdn.net/qq_21262611/article/details/52121270 )
    <10> Use Step Filters,快捷键(Shift+F5)。
        解释:大部分时间,在调试的时候,你希望查看自己的代码。而不是从其他库或JDK中的代码,甚至是你自己代码库中的框架部分的代码。  你可以配置Eclipse的Java调试器,通过配置“Step Filter”来使它不进入这些代码。 
① Windows -> Preferences -> Java -> Debug -> Step Filtering.  选择‘Use Step Filters’.  ② 或者使用按钮<10>.
        在屏幕上选中所需的选项。你可以添加你自己代码库中的部分代码。 点击‘Apply’. 
        现在,下次你在orderList.add(newOrder)断点处按下F5时,你将不会进入ArrayList.add()方法。相反的是,调试器将把你带到合适的地方。这对你不想调试来查看JDK的bug是友好的。
    (来源:http://blog.sina.com.cn/s/blog_55870a7f0100rtz6.html )
    (5)跳过或清除断点:
              下图所示的两个为Skip All Breakpoints设置的方式。
            在上面已经说过,其作用是将所有的断点设置为跳过,所以断点上会有一个斜线,表示断点被跳过,线程不会在该断点处被挂起。
            点击Run-->Remove All Breakpoints清除所有的断点或点击按钮<1>,在断点调试完可进行此操作。
(6 ) Debug调试完成后,需要切换回Java视图。下面介绍两种切换的方法:
                ① 通过IDE右上角的两个按钮进行切换,如下图所示;
               ② 点击菜单Window-->Perspective-->Open Perspective选择相应的视图
##

有更详细的介绍,比如: https://www.cnblogs.com/JavaBlackHole/p/7674963.html

等等... ...
#告一段落#

学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级相关推荐

  1. Eclipse 断点调试(Debug), 使用方法

    1.问题:Java学习中,使用Eclipse时,会遇到各种各样的问题,对内部底层的运行,或运行顺序不同,会导致不能真正理解,灵活运用. 使用debug断点调试,可以完成,程序每一步一步是怎么样运行的, ...

  2. 朝花夕拾:Eclipse断点调试

    作为开发人员,掌握开发环境下的调试技巧十分有必要.去年就想把关于Eclipse断点调试总结下了,由于对时间的掌控程度仍需极大提高,结果拖到今年才写了此篇博文.关于java调试技术还有很多,如Java ...

  3. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 ​ 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...

  4. Intel VT学习笔记(五)—— 调试技巧

    Intel VT学习笔记(五)-- 调试技巧 要点回顾 INT 3失效 调试技巧 参考资料 要点回顾 在上一篇中,我们主要学习了如何填写Guest state fields的各项字段,以及如何对错误码 ...

  5. 软件调试学习笔记(三)—— 调试事件的处理

    软件调试学习笔记(三)-- 调试事件的处理 要点回顾 调试事件的处理 实验一:实现简单调试器(创建进程) 实验二:分析异常来源 实验三:实现简单调试器(附加进程) 实验四:分析NtDebugActiv ...

  6. Eclipse断点调试

    1.1 Eclipse断点调试概述 Eclipse的断点调试可以查看程序的执行流程和解决程序中的bug 1.2 Eclipse断点调试常用操作: A:什么是断点: 就是一个标记,从哪里开始. B:如何 ...

  7. RN学习笔记02:利用WebStorm创建RN项目

    RN学习笔记02:利用WebStorm创建RN项目 在RN学习笔记01里,安装了node.js与react-native-cli,而且配置了环境变量. 在命令行环境,利用react-native in ...

  8. CMake 学习笔记 02 - 更复杂的项目

    CMake 学习笔记 02 - 更复杂的项目 源代码见 https://github.com/fengyc/cmake-tutorial 源代码目录组织 一般的项目,会划分为多个子目录,每个子目录中包 ...

  9. 【JAVA】Eclipse断点调试教程

    Eclipse断点调试教程 断点: breakpoint, 标记程序在这里暂停 断点调试的作用: 可以在程序运行中查看程序的执行流程 调试程序, 如查看变量的值 如何加断点: 在行号左边双击 创建/取 ...

最新文章

  1. Linux之用户相关操作
  2. 散列查找 散列表(哈希表)
  3. The authors of these two monitoring tools
  4. ASP.NET 实现PDF文件下载[转]
  5. qt中如何模拟按钮点击_怎么在qt中实现一个按钮列表?
  6. 两个数组各个数相加或相乘变成一个矩阵求第K大
  7. centos6.8中zabbix3.0.X的部署
  8. js 将html 某个dom 导出pdf,并处理分页
  9. 百度网盘设置自定义提取码
  10. 华为freebuds4i降噪方法分享(教程分享)
  11. 成功解决We recommend that if you want Anaconda registered as your system Python, you unregister this Pyt
  12. 如何将多张图片转换为pdf格式
  13. crontab:设置计时器
  14. 哪些软装装饰让你认为是家里装修的点睛之笔?
  15. 文件操作SaveFileDialog的用法
  16. 【vue2】axios请求与axios拦截器的使用详解
  17. 【Discuz!跨站脚本攻击】--跨站脚本攻击
  18. Ubuntu、stm32下的C程序各变量的分配地址分析
  19. SPEC CPU简介和使用
  20. 设计师都在用的宝藏网站,你一定要知道

热门文章

  1. proxmox tesla_大众One Ups Tesla突破性的电池突破
  2. keil在线调试技巧
  3. 电视hdmi接口在哪_笔记本如何连接电视机?电视秒变电脑屏
  4. wirelessn1000 驱动_Intel英特尔
  5. ios 客户端校准标准时间
  6. 数商云:建筑建材行业采购管理系统助力企业智慧采购
  7. 使用STM32点亮LED
  8. 说说摩拜单车的骑后感
  9. 常用的网站 (持续更新中)
  10. 2019 vs 安装odt_2019年12月10日罗马协会直播预告