在进行Java开发或者学习时,不少人可能会使用Eclipse软件,当然开发过程中可能会遇到各种编译、运行出现错误的问题,这时我们就需要对代码进行Debug,检查到底哪里出了问题。因此,熟练掌握开发环境的Debug工具很有必要。本人在使用java时就很少使用Debug工具,现边记录边学习吧。
对于Intellij的使用及调试,之后在了解,在此标记!
工具:Eclipse Version:Oxygen.2 Release(4.7.2)
方法/步骤:
(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控制台用于查看打印的日志信息:
按钮符号解释:<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)。主要用途是所有变量状态快速恢复到方法开始时候的样子重新执行一遍,即可以一遍又一遍地在那个你关注的上下文中进行多次调试(结合改变变量值等其它功能),而不用重来一遍调试到那里了。当然,原来执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记录)。
<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是友好的。
(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
等等... ...
#告一段落#