我有一个很好的Java学习交流群,里面有很多技术大牛,如果你感兴趣的话可以加群(471948038)一起交流学习。
Debug工具在JavaEE学习和工作中非常实用,在JavaEE带教过程中发现,很多初学者都不愿意使用debug工具,主要原因是没有迫切的需要特性和需要一定的学习成本,加上课程体系中对debug相关的教授引导力度不够,很多学员到项目阶段都不一定能学会使用debug工具;
调试技巧总共分为三个部分,该文档(第一部分)主要介绍debug工具的基本使用技巧,后续第二部分介绍debug工具的高级使用;第三部分主要学习浏览器前端调试技巧;
第一部分:Debug的基本使用
一:启动
1.
使用Debug
模式启动服务器:
![](https://i-blog.csdnimg.cn/blog_migrate/1baede99c7b365fbd47bb75366da889d.jpeg)
2.
使用Debug
模式启动后服务器状态;
![](https://i-blog.csdnimg.cn/blog_migrate/621fa4630613ca801b0fd1e3a62f417e.jpeg)
3.
显示行号的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/b6e70ed4564ff4ea737105a884c1948c.jpeg)
4.
设置断点位置,可以在项目启动之前设置断点,也可以在项目运行的时候随时设置断点;
![](https://i-blog.csdnimg.cn/blog_migrate/80ea86ed0506f97870064f0ebcc4ddf7.jpeg)
5.
当程序执行到断点位置之后会自动挂起,Eclipse
同时会提示如下对话框;
![](https://i-blog.csdnimg.cn/blog_migrate/93b57b4ccadbf80cca04d2c97f044aef.jpeg)
6.
点击Yes
之后会显示Debug
视图,各视图简介如下:
![](https://i-blog.csdnimg.cn/blog_migrate/3c8c33b0bd4c6ea3c86da323d5793a01.jpeg)
7.Eclipse
断点调试两个条件:
1.使用Debug模式启动服务器;
2.程序执行过程中设置了断点;
2.程序执行过程中设置了断点;
二:运行方法
1.常用的两个调试功能键:
F6:按照代码顺序一行一行的执行,点击图标和键盘F6功能相同;
F8:跳过当前断点直至下一个断点或直接执行至程序结束;
![](https://i-blog.csdnimg.cn/blog_migrate/403ab2f3f8ed641295c8f3a356c65662.jpeg)
2.
当程序遇到断点时会自动挂起,当前选中行表示程序所执行的位置;可以使用F6
(单行运行)手动控制程序的运行;
![](https://i-blog.csdnimg.cn/blog_migrate/a9e0e2a704be1071580965717b2fe1dc.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/884dd2303219c333926a386f4dd8efcd.jpeg)
三:参数传递:
1.以登录逻辑为例演示参数的传递路径和查看参数的方法;
使用Debug启动服务器,在需要查看参数的位置设置断点,启动浏览器访问资源,并提交数据至后台:
后台接收参数:
![](https://i-blog.csdnimg.cn/blog_migrate/48c2294644f612e3683e636a95f70c32.jpeg)
2.鼠标悬停查看参数信息:
![](https://i-blog.csdnimg.cn/blog_migrate/068c05188140996f515ebf758195897e.jpeg)
3.继续运行,封装user信息,并查看封装后user信息:
![](https://i-blog.csdnimg.cn/blog_migrate/9041af3cff18b33663a4db4b6839bd32.jpeg)
4.参数经过service层调用dao层执行查询,查询到匹配的用户信息并返回;
![](https://i-blog.csdnimg.cn/blog_migrate/d5876546e5264dbbc6409ef16e078af4.jpeg)
5.将信息返回到web层后,此时是可以查看返回用户的相关信息的;
![](https://i-blog.csdnimg.cn/blog_migrate/1bc56c8bb5b1baeba61589f98ef2c4fe.jpeg)
6.继续执行代码,当代码执行位置位于方法的封闭括号的时候表示该方法执行完毕;
![](https://i-blog.csdnimg.cn/blog_migrate/0f40f1c34588ab41f35a9c72b387d5d2.jpeg)
7.方法执行完毕并不是代表程序执行完毕,此时继续F6运行调用底层的执行代码;只需F8直至运行结束即可;
![](https://i-blog.csdnimg.cn/blog_migrate/65303ce1288570b4dbf934ec3c57ed76.jpeg)
8.运行结束后的状态如图;
![](https://i-blog.csdnimg.cn/blog_migrate/ed71b29d9643c8b2499b7b423e7d1d63.jpeg)
四:案例
1.描述:使用Debug模式启动后,并设置了断点,但在运行过程中Eclipse并没有提示进入Debug视图;
分析:一般情况下没有提示进入Debug视图的原因是程序没有执行到该断点位置;
解决办法:
A:检查断点设置的位置是否正确;
B:检查程序代码逻辑;检查请求路径是否正确;
B:检查程序代码逻辑;检查请求路径是否正确;
2.描述:参数在执行的过程中代码执行位置突然跳入捕捉异常的语句上,继续运行控制台就报错;
分析:捕捉异常的语句执行了说明捕捉到了异常信息,说明代码执行过程中出现了异常或者错误(找到了错误的位置);
解决办法:
A:检查代码逻辑,修改错误的语句或者逻辑;