Eclipse里面调试java总结

     ‍ 正所谓“工欲善其事必先利其器",会用Eclipse去调试能够帮助识别和解决应用程序缺陷,同时也能够帮助咱们去阅读和理解一些源码是有极大的帮助的。能够极大的提升咱们的工做效率。‍java

1.基础知识,熟悉Debug视图

认识debug视图,红色部分框为线程堆栈视图,黄色部分框为表达式、断点、变量视图,蓝色部分为代码视图。linux


 线程堆栈视图web

分别介绍一下这几个按钮的含义:数据库

1.表示当前实现继续运行直到下一个断点,快捷键为F8。windows

2.表示打断整个进程tomcat

3.表示进入当前方法,快捷键为F5。服务器

4.表示运行下一行代码,快捷键为F6。框架

5.表示退出当前方法,返回到调用层,快捷键为F7。eclipse

6.表示当前线程的堆栈,从中能够看出在运行哪些代码,而且整个调用过程,以及代码行号函数



 

变量视图

1.为变量名视图,显示当前代码行中全部能够访问的实例变量和局部变量

2.显示全部的变量值

3.能够经过该窗口来改变变量值



 

断点视图

1.显示全部断点

2. 将当前窗口1中选中的端口失效(你能够发现你本身的窗口上的断点所有被打上了斜杠),再次点击启用。

3.异常断点



 

表达式视图

表达式视图:表达式视图是Debug过程当中较为经常使用的一个视图,能够对本身的感兴趣的一些变量进行观察,也能够增长一些本身的表达式,也能够查看一行代码的运行结果。

1.表达式

2. 点击此能够新增一个表达式



 

代码视图

代码视图:用来显示具体的代码。其中绿色部分是指当前将要执行的代码


2. 一些很是有用的调试的小方法

2.1Drop to Frame -回退到该函数的开头位置

      这个能够从新跳到调用堆栈框架的开始处执行,而且变量值也会回到最初。根据回档调整堆栈的深度,这个功能的主要用途是全部变量状态能够快速回到方法开始执行时候的样子,而后你能够从新进行一遍一遍执行,这样就能够在你关注的地方进行屡次调试,可是在执行过程当中也会产生一些反作用,好比插入到数据库里面的数据是没法删除的!

2.2改变变量的值

在调试过程当中,咱们能够修改变量值。先选好一个变量而后进入变量视图(Variables view),根据变量类型在其对应的Value列里输入值便可。

 

2.3条件断点

条件断点,顾名思义就是一个有必定条件的断点,只有知足了用户设置的条件,代码才会在运行到断点处时中止。

在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"

 

 

断点的属性界面及各个选项的意思以下图,

2.4 异常断点

       常常碰见一些异常,而后程序就退出来了,要找到异常发生的地方就比较难了,还好能够打一个异常断点,

 

上图中咱们增长了一个NullPointException的异常断点,当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助。

2.5单步过滤

       单步过滤的场景是咱们在使用F5来跟到某个方法内部的时候,常常会跟到一些咱们肯定不须要看的方法内部。

this.getTradeDetail(uid, itemStr.subString(0,5))

好比这行代码,想F5进入getTradeDetail内部,会首先执行itemStr.subString方法,会先进入subString方法,而这方法是jdk的String方法,肯定没问题,不须要关心,单步过滤就是跳过这些咱们想忽略的方法直接到目标方法内部的一种debug技巧。

在Window > PreferencesJava > Debug > Step Filtering 设置过滤器, 能够选择须要过滤掉的包和类。同时要确保你在debug视图中启用了单步过滤,以下图。这样在使用单步调试的时候,就会使用到这个过滤功能。

下图是过滤器配置,典型的就是把jdk的一些类和包配置过滤。下图是要在debug时候开启单步过滤,不然不生效。

这里写图片描述

开启单步过滤

这里写图片描述

这些调试的小方法在咱们的调试项目的时候的确能够给咱们很大的帮助,必定要学会。

3 远程调试 

        这中调试方式在咱们的实际工做开发中用的很是多,特别是咱们的Java web 开发里面,咱们的程序要跑在linux下面,可是咱们写代码,测试,通常在windows下,可是咱们想远程的调试服务器上的代码,特别是出了bug,咱们在本地是没有问题,可是测试环境里面一直有问题。      

       远程debug:远程debug顾名思义,可以将远程操做系统上的任何java进行debug,可是有前提是本地须要有同步的代码。

3.1 eclipse远程调试linux下tomcat

         看到不少人,设置这,设置那个,其实不用那么麻烦的,由于tomcat服务器已经内置了JPDA支持(Java的JPDA远程调试程序,JPDA是JDK自带的远程调试机制)‍

在linux下的操做:

       1.先中止tomcat

       2.让tomcat以能够远程调试的方法运行。

              进入tomcat的bin目录,执行以下命令  

catalina.sh jpda run

在windows下的操做         

       1.打开Debug Configurations视图

       2.右击Remote Java Application,

          New

       3.选择源码工程

       4.输入远程IP和端口,端口即服务端的$DEBUG_PORT,点击OK。

        

3.2 当咱们的远程链接debug的时候,可能会报以下错误:

     缘由是咱们已经有一个远程链接了,咱们进入debug视图将其关掉便可

1.打开Debug视图,Window----Open Perspective----Debug,便可打开debug视图

    

   2.关闭这个远程链接

        点击以下按钮,便可关闭远程调试链接了

             

至此,基本的Eclipse调试技巧讲完了!

相关文章
相关标签/搜索