01_Debug简介和意义

  • 什么是程序DeBug?

    • Debug,是程序开发人员必会的一项调试程序的技能。

    • 企业中程序开发和程序调试的比例为1:1.5,可以说如果你不会调试程序,你就没有办法从事编程工作。

  • Debug能帮助我们做什么?

    1. 追踪代码的运行流程。

    2. 程序运行异常定位。

    3. 线上问题追踪。

  • Debug对于程序学习者的意义

    1. 通过调试能够更好的查看程序的执行流程。

    2. 复杂的程序逻辑,通过老师的口述讲解,很难理解清楚,这个时候借助调试能够很好的帮助同学们理解程序。

    3. 定位问题,提高自我解决问题的能力。

02_IDEA中的Debug步骤

  • 设置断点(F9)

  • 调试程序(8个按钮)

  • 观察变量

    • 查看变量有三种方式:

      • 程序区查看变量

      • Debugger的Variables中查看变量

      • 鼠标悬停到变量名上会弹出当前变量的值

  • 查看输出

03_跳转到当前代码执行的行

  • 跳转到当前代码执行的行(Alt + F10)

  • 作用

    • 使程序窗口切换到当前正在运行的程序处。

04_步过调试的使用

  • 步过调试

    • 步过调试按钮(F8)

  • 作用

    • 步过,一行一行地往下走,如果这一行上有方法不会进入方法。

    • 常用于调试过程中不想进入调用的方法体的情况。

05_步入调试的使用

  • 步入调试

    • 步过调试按钮(F7)

  • 作用

    • 步入,一行一行地往下走,如果这一行上有方法,则进入方法内部。

    • 一般用于进入自定义方法内,不会进入官方类库的方法。

06_强制步入调试的使用

  • 强制步入调试

    • 强制步入调试按钮(Alt + Shift + F7)

  • 作用

    • 进入官方类库方法

    • 帮助我们学习和查看JDK源码

07_步出调试的使用

  • 步出调试

    • 步出调试按钮(Shift + F8)

  • 作用

    • 从方法内退出到方法调用处。

    • 调试的时候,有时候会跳入到自己不想查看的方法体,这个时候使用步出。

08_回退断点调试的使用

  • 回退断点

    • 回退断点按钮 

  • 作用

    • 回退到当前方法的调用处。

    • 当想重新查看该方法体的执行过程时,不用重新启动Debug,可以使用回退断点方式。

09_运行到光标处

  • 运行到光标处

    • 运行光标处按钮 (F9)

    • 作用

      • 使程序运行到光标处,而无需设置断点。

10_计算表达式

  • 计算表达式

    • 计算表达式按钮(Alt + F8)

  • 作用

    • 设置变量,在计算表达式的框里,可以改变变量的值,这样有时候就能很方便我们去调试各种值的情况了。

11_条件断点

  • 条件断点

    • 右键单击断点处,可以设置进入断点的条件

  • 作用

    • 通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。

12_多线程调试

  • 步骤

    • 多线程调试,需要调整断点挂起级别为Thread

    • Frame中选择线程进行调试

IDEA的Debug详解的更多相关文章

  1. Android签名详解(debug和release)

    Android签名详解(debug和release)   1. 为什么要签名 1) 发送者的身份认证 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包 ...

  2. 汇编debug工具详解

    关于debug工具里的各个指令的用法 debug调试工具详解: r:可以查看,和改变寄存器中的内容具体用法:·直接输入r的时候,回车显示当前指向内存单元中所有寄存器中的内容,并将所指机器码翻译成汇编指 ...

  3. Android调试桥-Android Debug Birdge详解

    原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...

  4. 转: Android 软件开发之如何使用Eclipse Debug调试程序详解(七)

    转自: http://www.uml.org.cn/mobiledev/201110092.asp Android 软件开发之如何使用Eclipse Debug调试程序详解(七)   发布于2011- ...

  5. 【转】 C# DEBUG 调试信息打印及输出详解

    [转] C# DEBUG 调试信息打印及输出详解 1.debug只在[debug模式下才执行](运行按钮后面的下拉框可选) 2.debug提供了许多调试指令,如断言          System.D ...

  6. (转)Intellij IDEA 2017 debug断点调试技巧与总结详解篇

    背景:详细介绍idea的debug调试过程 Intellij IDEA 2017 debug断点调试技巧与总结详解篇

  7. Intellij IDEA中使用Debug调试详解

    转载:https://www.linuxidc.com/Linux/2017-09/146772.htm   Intellij IDEA中使用Debug调试详解 Debug用来追踪代码的运行流程,通常 ...

  8. IntelliJ IDEA 2020.1.1 x64 Debug 断点调试模式详解

    前言 对于初入职场的萌新们来说,很多都还不会 Debug 断点模式.记得我刚写代码的时候,也是通过 System.out.println() 一行一行的把变量打印出来看.其实强大的编辑器已经帮我们做好 ...

  9. IDEA中 Debug 调试工具(图文详解)

    DEBUG调试工具 一. Debug 调试工具 1. Debug的作用 2. Debug的使用步骤 3. IDEA中Debug按钮详解 总结 参考博文:https://blog.csdn.net/qq ...

随机推荐

  1. PHP date_offset_get() 函数

    ------------恢复内容开始------------ 实例 返回奥斯陆(在欧洲挪威)冬天和夏天相对于 UTC 的以秒计的时区偏移量: <?php$winter=date_create(& ...

  2. PHP boolval() 函数

    boolval 函数用于获取变量的布尔值.高佣联盟 www.cgewang.com 版本要求:PHP 5 >= 5.5.0, PHP 7. 语法 boolean boolval ( mixed ...

  3. PHP acosh() 函数

    实例 返回不同数的反双曲余弦: <?phpecho(acosh(7) . "<br>");echo(acosh(56) . "<br>&qu ...

  4. 动态生成HTML元素-模拟在线考试功能

    前言 我们在项目开发过程中,经常会遇到页面html元素无法提前预设,而是通过某一些条件动态生成的情况,这里我们需要考虑如下几个因素: 1.需要动态创建的元素类型,比如TextBox, Radio, C ...

  5. [vue] computed 和 method

    计算属性 计算属性只有在它的相关依赖发生改变时才会重新取值 Method method每次渲染的时候都会被执行 举一个栗子 <template>...<div>  <p& ...

  6. Canal v1.1.4版本避坑指南

    前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道.管道)上线一段时间,不出坑的时候风平浪静 ...

  7. Java 设置、删除、获取Word文档背景(基于Spire.Cloud.SDK for Java)

    本文介绍使用Spire.Cloud.SDK for Java 提供的BackgroundApi接口来操作Word文档背景的方法,可设置背景,包括设置颜色背景setBackgroundColor().图 ...

  8. LibSvm流程及java代码测试

    使用libSvm实现文本分类的基本过程,此文参考 使用libsvm实现文本分类 对前期数据准备及后续的分类测试进行了验证,同时对文中作者的分词组件修改成hanLP分词,对数字进行过滤,仅保留长度大于1 ...

  9. Java中编写代码出现异常,如何抛出异常,如何捕获异常

    异常的产生过程解析 先运行下面的程序,程序会产生一个数组索引越界异常ArrayIndexOfBoundsException.我们通过图解来解析下异常产生的过程. 工具类 class ArrayTool ...

  10. java流程控制语句switch

    switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达 式的值作出判断,从而决定程序执行哪一段代码. 格式: switch (表达式){ case 目标值1: 执行语 ...