手把手教调试bug怎么做?
手把手教调试bug怎么做?
一. 产生异常的代码
我们先来看下面这段代码?你觉得会有什么问题吗?
package com.qf.test05;
public class Test03 {
public static void main(String[] args) {
//定义一个变量
int i =1;
while (i<=5){
System.out.println("喜欢java\t"+i);
}
}
}
二. 查看运行结果
上面代码的运行结果如下图所示,与你预想的结果一样吗?
很明显,上面的代码有问题!那该怎么解决呢?我们可以使用debug功能来进行调试。
三. Debug断点调试的使用
1. Debug模式
debug是供程序员使用的程序调试工具,它可以用域查看程序的执行流程,也可以用域追踪程序执行过程来调试程序。
2. debug调试面板介绍
接下来我就给大家解释一下debug调试面板的功能:
①==>重新运行程序,会关闭服务后重新启动程序;
②==>更新程序,一般在你的代码有改动后可执行这个功能;
③==> 关闭程序;
④==> 查看所有的断点;
⑤==> 哑的断点,选择这个后,所有断点变为灰色,断点失效;
⑥==> 步过,一行一行地往下走,如果这一行上有方法不会进入方法;
⑦==>步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法;
⑧==>强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法;
⑨==>步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值;
⑩==>行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
3. Debug调试步骤
了解了这些基本的功能之后,我们再来看看debug的调试步骤:
设置断点;
Debug执行;
查看代码的执行流程 以及观察变量值的变化;
发现问题 以及解决问题
3.1 如何加断点
选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
3.2 运行加了断点的程序
在代码区域直接右键Debug执行。
3.3 如何查看调试结果
我们可以通过查看Debugger窗口和Console窗口来查看调试结果。
3.4 解决问题
通过观察程序的执行以及变量值的改变,可以发现循环变量没有发生改变 ,所有使用debug很快就可以查找到错误。
3.5 解决后的代码
四. java断点调试总结
现在我们就把debug模式的使用给大家介绍完了,最后总结如下:
A. 条件断点:在有逻辑条件判断处设置断点 例如:多分支if swicth...;
B. 变量断点:在关键的变量上设置断点 观察变量的值的变化;
C. 方法断点:在方法的入口处设置断点 可以观察方法的执行的结果以及流程;
D. 异常断点:就是在发生异常的地方设置断点 确定异常发生的情况。
猜你喜欢LIKE
相关推荐HOT
更多>>算法评测标准---空间复杂度是什么?
算法评测标准---空间复杂度是什么?空间复杂度是什么?一. 空间复杂度的概念,复杂度(Space Complexity),是对一个算法在运行过程中临时占用存...详情>>
2023-03-23 20:15:04怎么用css画三角形?
怎么用css画三角形?border这里的像素值 和 border-left这里的像素值可以是不一样的,也可以是一样的,根据三角形的形状来进行具体设置值即可,要...详情>>
2023-03-23 15:27:16Maven集成 tomcat插件及使用教程
在实际的项目开发中,特别是分布式项目,往往有N多个子项目需要同时启动测试。这样多个项目引用tomcat插件,配置不同的端口,就可以同时启动N个...详情>>
2023-02-23 14:44:00扫盲CSS中常见的单位
Px是pixel的简写, 被称之为像素单位, px可以在计算机屏幕上,能达到预期的效果,在打印机和其它的高分辨率设备上,它又能取得所希望的效果, 一...详情>>
2023-02-16 13:47:00热门推荐
java变量的作用域是什么?
沸什么是Java循环?
热switch语句的case和default有顺序吗?
热SpringBoot中使用redis 新手入门
新vue的watch和computed的区别以及特点是什么?
算法评测标准---空间复杂度是什么?
Spring整合Junit框架是什么?
break和continue必须要在循环中使用吗?
怎么用css画三角形?
手把手教你搭建Oauth2授权服务!
为什么不能用break?
什么是foreach循环?它有哪些优点和局限性?
react生命周期?16版本删除了什么钩子函数?为什么删除?
经典面试题:static加载机制你知道吗?