Debug断点调试技巧,学会真的香!!

简介: Debug断点调试技巧,学会真的香!!

一、前言

1.为什么要使用Debug断点调试

断点调试也是学习和教授编程的重要工具。对于初学者来说,通过设置断点并一步步观察代码的执行,可以更好地理解程序的运行机制和逻辑。对于教授编程的人来说,可以使用断点调试来演示代码的执行流程和展示具体问题的解决方法,所以学会Debug无疑是门必修课!

2.使用的好处是什么

在我们写代码的时候,有时候编译运行不报错,但是程序运行结果与我们预先预料的不一致或是报错等问题,我们就可以通过Debug断点调试,每行代码跟踪运行,运行的过程中,可以看到变量的变化以及方法的调用等,可以更好的帮我们找出问题所在。

二、Debug断点调试技巧

1.初始Debug

首先我们要记住三个最基本的东西

断点:程序运行到断点后就不会运行了,等着你的操作指挥。

F6:向下逐行调试。

F5:向下逐行调试遇到方法调用跳入方法。

当断点还没运行到下一行变量就是空的,我们F6走完后看看结果

发现for中的arr数组以及变量有了值,这就是断点的好处可以动态的观察到变量的值。

即时窗口的运用

Window--->Show View--->Expressions

一种调试工具,可在集成开发环境(IDE)中使用。它提供了一个交互式的环境,可以在代码执行过程中进行即时的表达式求值和变量查看。

package com.xw.entity;
public class DebugTest {
  public static void main(String[] args) {
    String a = "";
    String b = "";
    System.out.println("我是a字符串"+a);
    System.out.println("我是b字符串"+b);
    int[] arr = { 1, 5, 3, 2, 6, 7 };
    for (int i = 0; i < arr.length; i++) {
      if (i == arr.length - 1)
        a+=arr[i];
      else
      b+=arr[i] + ",";
    }
    System.out.println("我是a字符串"+a);
    System.out.println("我是b字符串"+b);
  }
}

我们以这几行代码为例,在即时窗口中输入表达式后,按下回车键或特定的执行键(通常是 Enter 键),即时窗口将计算并显示表达式的结果。您可以在其中查看表达式的值或执行特定的操作。

2.认识eclipse中的Debug断点调试按钮及作用

1.关闭所有断点作用是使其断点失效,我们如果打了断点但是不想调试又不能取消断点,就可以点击这个按钮失效断点。

2.执行调试的单步跳转(F8)当程序运行到断点处时,按下F8键将使程序执行一行代码,并跳转到下一行。这对于逐行调试程序以检查变量的值、执行路径或调用方法等非常有用。

3.暂停调试:用于在程序执行过程中暂停程序的执行。当程序执行到断点时,它会停止执行,并处于暂停状态,等待您进一步的操作。

4.终止调试:当您发现程序进入了无限循环或出现错误,无法继续执行时,可以使用 “Terminate” 来提前结束程序的执行。

5.F5进入方法:当执行断点调试的时候,运行下一步,如果是是方法调用会进入到方法里面,进行调试。

6.F6断点调试:会从断点开始执行然后向下逐行调试。

7.F7跳出方法:F5是遇到方法会进入,那么F7就是遇到方法后跳出方法继续向下执行。

8.内存剖析工具:"Drop to Fremo"的功能是将当前正在运行的Java应用程序转储(dump)到Fremo分析器中进行进一步的内存分析。它在调试Java应用程序的内存使用和性能问题时非常有用。

9.过滤: 这个功能比较简单,就是当我们在debug的时候想要忽略一些我们不关注的类时,可以开启Step Filters进行过滤,程序会一直执行直到遇到未经过滤的位置或断点。Step Filters功能由Use Step Filters,Edit Step Filters,Filter Type,Filter Package四项组成。

具体操作如下: Windows --> Preferences -> Java -> Debug -> Step Filtering.

10表达式expression窗口:写上自己需要观察的数据表达式或者修改变量值。

11.变量Variables窗口:显示当前方法的本地变量,非static方法,包含this应用,可以修改变量值。

3.使用技巧

3.1.条件断点

3.2.异常断点

3.3.动态修改断点值

3.4.断点控制线程优先级

相关文章
|
前端开发
前端报错 error in ./src/styles/index.scss 解决办法
前端报错 error in ./src/styles/index.scss 解决办法
6390 0
|
3月前
|
人工智能 自然语言处理 运维
保姆级教程:2026年阿里云轻量服务器快速部署OpenClaw(Clawdbot)步骤
OpenClaw(原Clawdbot/Moltbot)作为阿里云生态下的开源AI自动化代理工具,凭借“自然语言交互+自动化任务执行+插件化扩展”的核心特性,已成为个人办公、中小企业协作提效的核心工具。2026年阿里云轻量应用服务器针对OpenClaw推出专属预装镜像,将原本需要数小时的环境配置、依赖安装流程简化为“一键部署”,即使是零基础的新手,也能在30分钟内完成从服务器购买到功能验证的全流程。本文将以阿里云轻量应用服务器为核心载体,详细拆解OpenClaw的部署、配置、功能验证与运维全流程,包含实操代码命令与避坑技巧,确保新手零门槛上手。
3873 3
|
存储 运维 算法
蚂蚁Raft一致性算法库SOFAJRaft深入分析
大家好,我是 V 哥。SOFAJRaft 是蚂蚁金服开源的一款基于 Raft 共识算法的 Java 实现,特别适合高负载、低延迟的分布式系统。它支持 Multi-Raft-Group,能同时处理多个 Raft 集群,具备扩展性和强一致性保障。项目源自百度的 braft,并在性能和功能上进行了优化。本文将深入探讨 SOFAJRaft 的核心源码实现,包括 Leader 选举、日志复制、一致性维护、日志管理和快照机制等。通过关键代码展示其在节点初始化、日志复制、一致性维护等方面的设计思路。希望帮助大家更好地理解 Raft 算法,求关注和点赞,感谢!
507 2
蚂蚁Raft一致性算法库SOFAJRaft深入分析
|
10月前
|
人工智能 Linux Go
window 部署 coze-loop
本教程介绍了如何在 Linux 系统上安装 Go 环境、Docker 以及 Coze Loop,并配置多模型运行。内容包括安装步骤、环境变量设置、代码拉取、模型配置及服务启动等关键流程,适用于搭建本地化的 AI 模型服务环境。
1018 7
window 部署 coze-loop
深入理解Debug断点调试技巧
深入理解Debug断点调试技巧
1836 1
|
项目管理
软件项目经理需要具备这 11 个能力
软件项目经理需要具备这 11 个能力
1013 1
|
数据挖掘 计算机视觉
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
1401 1
|
存储 人工智能 前端开发
教你一步步用 ChatUI + Julep 构建 AI 应用
本文介绍了如何使用 Julep 平台和 ChatUI 构建一个 AI 驱动的电影伴侣应用程序。通过创建用户、代理和会话,实现与用户的交互,并通过 API 获取响应消息。文章详细展示了从前端项目创建到后端集成的完整步骤,包括安装依赖、配置 API 密钥、处理用户输入和响应等。最终,通过运行项目,展示了应用程序的实际效果。源码已发布在 GitHub 上,供读者参考和学习。
673 0
|
Java 关系型数据库 MySQL
全网最实用的 IDEA Debug 调试技巧(超详细案例)
Debug 是程序员的开发神器,使用好了可以帮助我们非常高效的工作、学习、排查问题等。毫不客气的说,是决定我们进阶到更高层级的一个重要技能。 今天跟大家分享一下 IDEA 中 Debug 调试的各种奇技淫巧。
4366 0
全网最实用的 IDEA Debug 调试技巧(超详细案例)