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 gregoriantojd() 函数

    ------------恢复内容开始------------ 实例 把格利高里历法的日期转换为儒略日计数,然后再转换回格利高里历法的日期: <?php$jd=gregoriantojd(6,20 ...

  2. luogu P5667 拉格朗日插值2 拉格朗日插值 多项式多点求值 NTT

    LINK:P5667 拉格朗日插值2 给出了n个连续的取值的自变量的点值 求 f(m+1),f(m+2),...f(m+n). 如果我们直接把f这个函数给插值出来就变成了了多项式多点求值 这个难度好像 ...

  3. 死磕abstractqueuedsynchronizer源码

    第一次写博客,先练练手. 1.AQS是什么? 在Lock中,用到了一个同步队列AQS,全称为AbstractQueuedSynchronizer,它是一个同步工具也是lock用来实现线程同步的核心组件 ...

  4. SpringCloud系列之客户端负载均衡Netflix Ribbon

    1. 什么是负载均衡? 负载均衡是一种基础的网络服务,它的核心原理是按照指定的负载均衡算法,将请求分配到后端服务集群上,从而为系统提供并行处理和高可用的能力.提到负载均衡,你可能想到nginx.对于负 ...

  5. Java 添加、删除、格式化Word中的图片

    本文介绍使用Spire.Cloud.SDK for Java提供的ImagesApi接口来操作Word中的图片.具体可通过addImage()方法添加图片.deleteImage()方法删除图片.up ...

  6. Linux常用命令之用户权限管理chmod、chown、chgrp、umask命令讲解

    这节课我们重点来学习权限管理命令,说到权限大家可能第一时间能想到的就是读.写.执行 rwx 三种权限,在正式讲解权限命令之前,先简单的介绍一下rwx权限对于文件和目录的不同含义. 权限字符 权限 对文 ...

  7. 牛!Python 也能实现图像姿态识别溺水行为了!

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 众所周知随着人工智能智能的发展,人工智能的落地项目也在变得越来越多,尤其是计算机视觉方面. 很多人学习python,不知道从 ...

  8. CSS基础知识(下)

    3.层叠 稍微复杂的样式表中都可能存在两条甚至多条规则同时选择一个元素的情况.CSS通过一种叫作层叠(cascade)的机制来处理这种冲突. 层叠机制的原理是为规则赋予不同的重要程度.最重要的是作者样 ...

  9. effectivejava(破坏单例)

    以下代码是最普通的双重锁的单例实现形式 package com.edu.character02; import java.io.Serializable; /** * <p> * 双重锁 ...

  10. elasticsearch java工具类

    docker运行elasticsearch docker pull elasticsearch:7.8.1 docker run -p 9200:9200 -p 9300:9300 -e " ...