JavaWeb的debug调试

Eclipse中的debug模式使用指南

本文转载自连接:http://www.noobyard.com/article/p-bjbbxxvk-py.htmljava

Eclipse中的debug模式使用指web

Debug模式是在eclipse的使用中很是常见的对程序进行debug的方式,经过debug模式咱们能够更加方便快捷的定位问题出现的位置,而且找到缘由进行修改.可是不少小白同窗对debug模式的使用方式还不是很清楚,那么我这边会带着你们去了解一下eclipse的debug模式的使用;面试

  1.     Debug模式的启动方式

在eclipse中,咱们运行Java程序的方式通常有两种,分别是启动main方法和启动服务器,那么针对这两种方法咱们启动debug模式的方法也很简单,以下:spring

Main方法的debug模式和正常运行main方法的方式区别在一个选择 Run As,一个选择Debug As ,其他都是同样的tomcat

启动服务器的debug模式,咱们以tomcat为例,正常启动tomcat和debug启动的方式区别在于选项不一样,使用debug模式启动只须要在server上鼠标右键选择debug便可:springboot

2.断点breakpoint的使用

咱们能够在Java代码的行号处使用鼠标双击出一个断点,这样当咱们的程序使用debug模式运行到断点处时,程序会暂停在这里,等待下一步运行的指令,如图:服务器

3.Debug视图

若是咱们在第一次运行debug模式的时候,程序运行到断点处会出现一个提示,如图:微信

遇到这个提示说明咱们没有默认选择debug模式先显示的视图,点击yes的话会进入到debug视图,点击no的话会停留到当前的视图模式(Java或JavaWeb),勾选了 Remember my decision的话 ,下次会再也不出现这个提示,而且默认进入刚才选择的视图.通常来讲咱们不推荐使用debug视图,由于debug视图的窗口过多会显得很乱,以下图:架构

咱们能够看到在debug视图下eclipse为咱们展现了当前程序内各个变量的值,那其实咱们在保持原有视图的状况下,咱们把鼠标放在对应的变量上也是能够看到变量值的,以下图:eclipse

4.Debug运行控制按钮

咱们看到了断点对于debug模式的重要性,那么当程序停在了断点处时,咱们要使用按钮对程序进行控制:运行下一步或运行到底等等,在上面咱们已经看到了正常状况下debug的控制按钮在哪里,那么每一个按钮都是作什么的呢?下面这里我会详细说明:

F8 运行到当前方法的下一个断点,或者当前方法调用的子孙方法的下一个断点或若是没有下一个断点则程序直接运行完毕;(不经常使用)

Ctrl+F2 结束当前主程序或者中止server

F5 进入当前断点所在子方法(不经常使用)

F6 进入当前断点所在方法的下一步(经常使用)

F7 对应F5使用,当进入子方法后返回父方法(不经常使用)

5.JavaWeb的debug调试

咱们刚才看了eclipse的debug调试方法,那么咱们看下在Javaweb项目中的应用,通常在咱们进行调试的时候,会把断点打在web项目的action或controller对应请求的第一行代码上,这样作的好处是前台请求进入后台后第一时间或被断点拦截,若是断点没有拦截则说明前台请求没有进入到后台,缘由无外乎前台没有发出请求或前台的请求发出了但没有进入到方法体(404或403或被拦截),正常会进入到断点处,以下图:

这时咱们可使用断点运行控制按钮进行控制,通常使用F6一步一步在方法体中运行,若是运行到某一行出错,则咱们从新运行请求后,在该行打断点,debug进行到该断点后,咱们找到该方法调用的方法,在该被调用的方法内打断点,而后按F6进行到该断点,继续debug便可,例如上面的程序在116行报错,则咱们以下操做:

若是运行到这里扔报错的话,咱们继续找到调用的方法继续debug便可.

这里给你们提供的是针对Java小白同窗,对eclipse的debug模式进行简单的介绍,方便你们在学习的过程当中定位及解决问题;

 

根据本人多年从业以及学习经验,录制了一套最新的Java精讲视频教程,若是你如今也在学习Java,在入门学习Java的过程中缺少系统的学习教程,你能够加QQ群654631948领取下学习资料,面试题,开发工具等,群里有资深java老师作答疑,天天也会有基础部分及架构的直播课,也能够加个人微信renlliang2013作深刻沟通,只要是真心想学习Java的人都欢迎。


java基础教程:https://ke.qq.com/course/149432?tuin=57912c43

Java分布式互联网架构/微服务/高性能/springboot/springcloud:

https://ke.qq.com/course/179440?tuin=57912c43