当前位置: 首页 > news >正文

断点调试介绍与使用案例

在开发中查找错误时,可以用断点调试,一步一步的看源码的执行过程,从而发现错误所在

提示:在断点调试 过程中,是运行状态,是以对象的运行类型来执行的

A extends B;
B b = new A();
b.xx();
此时b对象的运行类型是A

介绍:

1.断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步的往下调试,调试过程中可以看各个变量的值,出错的话,调试到出错的代码即显示错误,停下,进行分析从而找到这个bug

2.断点调试是程序员必须掌握的技能

3.断点调试也能帮助我们查看java底层源代码的执行过程,提高程序员的java水平

断点调试的快捷键:

F7(跳入)                 F8(跳过)                     shift + F8(跳出)        F9(resume,执行到下一个断点)

F7:跳入方法内        F8:逐行执行代码        shift + F8:跳出方法

案例一:

F8逐行执行:

public class debug01 {public static void main(String[] args) {//演示逐行执行代码int sum = 0;for (int i = 0; i < 5; i++) {sum += i;System.out.println(" i= " + i);System.out.println(" sum= " + sum);}System.out.println("end.......");}
}

        通过在要执行的代码行左边点击出现红色圆圈后,即设定好断点,此时鼠标右键代码点击调试,就可以在下方调试器中看到当前各个步骤下每个变量的值,通过控制台可以查看输出信息,在此过程中,按下f8就可以继续一步一步的来执行并查看当前变量的值走到哪一步

案例二:

看一下数组越界的异常:

public class debug02 {public static void main(String[] args) {int arr[] = {1,10,-1};for (int i = 0; i <= arr.length; i++) {System.out.println(arr[i]);}System.out.println("退出for....");}
}

案例三:

演示如何追源码,看看java设计者是怎么实现的:

小技巧:将光标放在某个变量上,可以看到最新的数据

package com.debugLearn.debug;import java.util.Arrays;public class debug03 {public static void main(String[] args) {//debug源码int arr[] = {8,-1,199,70,10};//排序,追入sort的源码Arrays.sort(arr);//查看sort方法执行流程:ctrl+左键或者设置://Setting > build,Execution,Deployment > debugger > Stepping//取消勾选Do not step into the classes 中的ajva.*,javax.*for (int i = 0; i < arr.length; i++) {System.out.println(arr[i] + "\t");}}
}

案例四:

演示如何直接执行到下一个断点 F9 resume:

技巧:断点可以在debug过程中,动态的下断点

http://www.dtcms.com/a/486660.html

相关文章:

  • Kafka在美团数据平台的实践
  • 【完整源码+数据集+部署教程】Aura棕榈油果实分割系统: yolov8-seg-C2f-DCNV2-Dynamic
  • 蛋白表达标签:提升重组蛋白研究与生产的关键工具
  • 网站备案编号查询wordpress 集成paypal
  • 数学口算练习抖音快手微信小程序看广告流量主开源
  • 【开题答辩过程】以《泰山珍稀动植物信息管理平台的设计与实现》为例,不会开题答辩的可以进来看看
  • wordpress 淘宝客页面seo网络培训班
  • 哪些公司做网站wordpress单选框php
  • 什么是程序计数器?
  • GEO实战之GEO 在营销生态中的定位:社交媒体、PR、内容营销的整合策略
  • 10.13 Tabs选项卡布局
  • 深圳比较好网站制作公司有哪些设置wordpress网页私有
  • seo1视频发布会优化关键词的公司
  • Uniapp微信小程序开发:onPullDownRefresh
  • 如何优化CMS的缓存机制?
  • h5游戏免费下载:Emoji自定义表情编辑器
  • AbMole小课堂丨重组R-spondin-3(RSPO3)的作用机理及其在类器官和干细胞研究中的应用
  • springboot 实现websocket通信
  • 深度学习实战:python动物识别分类检测系统 计算机视觉 Django框架 CNN算法 深度学习 卷积神经网络 TensorFlow 毕业设计(建议收藏)✅
  • app使用什么做的网站wordpress自动保存编辑器图片
  • 静态网页发布到wordpress河南关键词优化搜索
  • 从递归到迭代吃透树的层次——力扣104.二叉树的最大深度
  • 基于无监督深度学习方法的非迭代式、不确定性感知的磁共振成像肝脏脂肪定量评估|文献速递-文献分享
  • 如何能把网站做的更大宿主选择 网站建设
  • django rest framework:从零开始搭建RESTful API
  • springboot3加密配置文件的值
  • 抗干扰汽车微型网络(RAMN)开源测试平台的设计
  • wordpress 评测谷歌seo优化什么意思
  • C++手撕无锁线程池
  • kettle Spoon.bat启动报错:could not create the java virtual machine