标签:
看了好多年博客园了,从没有自己写过。这是本人写的第一篇文章,写之前只希望本篇不会是最后一篇。
好吧,言归正传。最近由于工作上的需要要使用Eclipse进行Java开发,其实老实说一开始用Eclipse真是各种不习惯,各种纠结不过慢慢习惯了也还好。虽然还是没有VS使用的顺手,但基本的开发也不存在问题,工具这东西主要还是看熟不熟,又跑题了。
咳咳,程序开发当然最先要学会使用工具,工具用得好才能事半工倍。而且开发工具的使用调试功能则显得更为重要,写的代码达不到预期效果当然需要调试一番了。本文作为讲解Eclipse的调试,重点只讲解使用Eclipse进行调试的常用 方法。更高层次的调试方法(如:远程调试、热部署)以及其它调试方法(如:日志追踪分析等)则不在本文描述。
一、增加断点
进行调试的第一步当然是增加断点,增加断点的方式很简单,只需要在断点停住的那行代码左侧双击即可,再次双击则断点消除。
有断点的状态如下:
(好精致的小圆点...)
二、启动tomcat服务选择debug模式
断点增加完进行站点发布后,启动tomcat服务选择debug模式即可:
![技术分享](http://image.mamicode.com/info/201604/20180110185335692649.png)
启动完后Server视图如下:
![技术分享](http://image.mamicode.com/info/201604/20180110185335694602.png)
三、调试方式
前面两步完成后,当运行到断点时就会自动挂起程序了如下图:
![技术分享](http://image.mamicode.com/info/201604/20180110185335695579.png)
进行断点后,eclipse界面自动会自动切换到调试模式,如果需要回到代码开发模式选择又上角的Java EE即可。
如果Debug常用视图在你的eclipse里面没有,可以通过菜单Window-ShowView-Other-Deubg下来调出来。
下面就几种常用的视图进行讲解:
3.1 调试工具条
![技术分享](file:///C:/Users/Luke/AppData/Local/YNote/data/qqFA701D378D1D1EF12DE5E916BDE7F33D/472d3ead7a694adc9c817327395b212c/clipboard.png)
调试工具条即调试代码的执行方式,工具条如下:
![技术分享](http://image.mamicode.com/info/201604/20180110185335697532.png)
就是这个工具了,七个按钮做一下些讲解:
1).该按钮会提示Resume F8。表示继续运行直到遇到下一个断点,快捷键为F8.
2).Suspend即挂起选择的线程。一般在多程线的代码调试的时候启用,用来查看某一个线程的堆栈帧或变量 值。
3).Terminate即中断操作。停止调试。停止后tomcat也会自动停止,网站不能访问.
4).Disconnect,当进行远程调试时,中断与远程JVM的socket连接。
5).Setp Into F5.即单步调试,如有方法则进入。快捷键F5
6).Sept Over F6。单步调试,但遇到方法如果方法 内无断点则不会进行方法。快捷键F6
7).Sept Return F7。退出当前调试方法 ,返回被调用的方法。快捷键F7
3.2 Debug View
debug视图展示了当前调试挂起的线程的堆栈帧信息,每一个线程做为一个对节点显示。
![技术分享](http://image.mamicode.com/info/201604/20180110185335699485.png)
可以进行的操作有:
![技术分享](http://image.mamicode.com/info/201604/20180110185335700461.png)
主要常用的功能已经在上小节讲过了(如:Setp Into、Setp Over...),下面主要讲解两个
3.2.1 Drop To Frame
该操作可以重新从方法的第一行开始逐步执行,而且成员变量的值及相关的操作则不会逆回如:在方法中执行了增加操作,如果Drop To Frame即会可能会继续执行增加操作,可能会造成增加失败。
这个操作有点类似于VS里面回退执行(拖动当前执行代码挂起的标志回退到之前操作),但相对而言功能要弱很多没那么方便。
3.2.2 Use Step Filters
该方法可以过滤不想执行的的代码断点,可以根据包名和类名来限定。如果选择了过滤,则还需要配置过滤的类或包。
通过 Windows -Preferences - Java - Debug -Step Filtering
![技术分享](http://image.mamicode.com/info/201604/20180110185335702414.png)
3.3 Variables View
Variables View即变量视图会列出Debug视图中所选的堆栈帧对应的相关的变量,点击右边的值可以对变量进行更改。
![技术分享](http://image.mamicode.com/info/201604/20180110185335703391.png)
变量视图可择的操作有:
![技术分享](http://image.mamicode.com/info/201604/20180110185335705344.png)
下面讲解几个常用的操作:
3.3.1 Change Value
这个改变值自然不要多说,可以点击列表中去改变,也可以选择这个。选择这个会弹出一个框用来输入需要改变的值。
3.3.2 All References
会列出这个变量所有引用的对象
3.3.3 All Instances
变量所对应的类型在当然堆栈帧上的所有实例。
其它的自然不要多说,尝试一下就知道了。不过要记住变量显示的范围的是在Debug View选择对应的堆栈帧,如果变量值不符合预期很有可能是堆栈帧选错了。
3.4 BreakPotints View
Breakpoints视图会显示当前工作区间下的所有断点,可以方便查询和管理工作区间下面的断点。
Breakpoints视图会显示当前工作区间下的所有断点,可以方便查询和管理工作区间下面的断点。有两个操作非常有用
3.4.1 Hit Count
即当断点命中到指定的次数,断点才会命中。比如在for循环里面可以设定超过300次即命中断点。
3.4.2 Conditional
可以根据指定的变量条件来命中断点,如我们可以写一个变量值,当触发某些条件时设置一个固定值然后根据条件就能命中断点了。
注意如果同时设置二者,如果有逻辑错误就会自动忽略。
3.5 Expressions View
表达式视图也比较常用,比如需要监控方法 返回值,计算变量值等。但是没智能提示,但是没智能提示,但是没智能提示...
四、小结
总的来讲eclipse的调试功能还是比较强大的,需要有的功能点也基本上全了,像高级一些的热布署(hot code replace HCR)也早就得到了支持(貌似VS 2013后才支持?)。开发也无非就是写代码、调代码,有时候调代码的时间可能比写代码的时间还要和。掌握各种代码调试、排查、纠错方法也当然就能很提高自己的开发能力。当然,第一次写文章,感觉真的累。
Eclipse调试
标签:
原文地址:http://www.cnblogs.com/cat80/p/eclipse-debugging-beginning.html