首页 > 其他分享 >Idea中使用Debug模式​详解

Idea中使用Debug模式​详解

时间:2023-11-27 16:32:07浏览次数:35  
标签:F8 断点 Idea 模式 详解 按钮 Debug 方法

Idea中使用Debug模式

Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。

Debug开篇

首先看下IDEA中Debug模式下的界面。

如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。就简单说下图中标注的8个地方:

①以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。

②断点:在左边行号栏单击左键,或者快捷键Ctrl+F8打上/取消断点,断点行的颜色可自己去设置。

③Debug窗口:访问请求到达第一个断点后,会自动激活Debug窗口。如果没有自动激活,可以去设置里设置,如图1.2。

④调试按钮:一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能,如图1.4。

⑤服务按钮:可以在这里关闭/启动服务,设置断点等。

⑥方法调用栈:这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。

⑦Variables:在变量区可以查看当前断点之前的当前方法内的变量。

⑧Watches:查看变量,可以将Variables区中的变量拖到Watches中查看


基本用法和快捷键

Debug调试的功能主要对应着图一中4和5两组按钮:

首先说第一组按钮,共8个按钮,从左到右依次如下:

  • Show Execution Point (Alt+F1Q): 如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
  • Step Over (F8): 步过,一行一行地往下走,如果这一行上有方法不会进入方法。
  • Step Into (FZ): 步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
  • Force Step Into(Alt+Shift+FZ): 强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
  • Step Out(Shift+F8): 步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
  • Drop Frame(默认无): 回退断点。
  • Run to Cursor(Alt+F9): 运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
  • Evaluate Expression (Alt+F8): 计算表达式,后面章节详细说明。


第二组按钮,共7个按钮,从上到下依次如下:

Rerun'xxxx':重新运行程序,会关闭服务后重新启动程序。

Update 'tech'application(Ctrl+F5):更新程序,一般在你的代码有改动后可执行这个功能。而这个功能对应的操作则是在服务配置里。

Resume Program(F9):恢复程序。

Pause Program:暂停程序,启用Debug。目前没发现具体用法。

Stop 'xxx' (Ctrl+F2):关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。

View Breakpoints(Ctrl +Shift +F8):查看所有断点,后面章节会涉及到。

Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。如果只想使某一个断点失效,可以在断点上右键取消Enabled,则该行断点失效。



标签:F8,断点,Idea,模式,详解,按钮,Debug,方法
From: https://blog.51cto.com/tangxiaohu/8587123

相关文章

  • 【分享】GPS北斗卫星对时服务(NTP时间服务器)搭建教程详解
    【分享】GPS北斗卫星对时服务(NTP时间服务器)搭建教程详解【分享】GPS北斗卫星对时服务(NTP时间服务器)搭建教程详解京准电子科技官微——ahjzsz网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,这篇文章主要介绍了Windows搭建NTP时间同步服务器......
  • MyBatis `<include refid="XXX">`标签详解
    MyBatis<includerefid="XXX">标签详解MyBatis作为一种优秀的持久化框架,提供了丰富的XML配置选项,其中<include>标签是一个非常有用的特性,用于引入SQL片段,提高代码的可维护性和可读性。解释<include>标签用于引用SQL代码片段。refid是引用的SQL片段的id名称,必须保持唯一。......
  • linux下创建idea的桌面快捷方式
    !!!使用linux系统安装idea才会用到:在桌面上,新建文件,命名为:idea.desktop,(或者在别的地方创建后再放到桌面)使用vim编辑该文件(或者不新建,直接vi idea.desktop 就会创建这个文件)输入内容如下:[DesktopEntry]Name=IdeaIUComment=Rayn-IDEA-IUExec=/home/ldf/idea/bin/idea.......
  • 为什么 IDEA 建议去掉 StringBuilder,而要使用 “+” 拼接字符串?
    作者:京东零售姜波来源:京东云开发者社区各位小伙伴在字符串拼接时应该都见过下面这种提示:内容翻译:报告StringBuffer、StringBuilder或StringJoiner的任何用法,这些用法可以用单个java.lang.String串联来替换。使用字符串串联可以使代码更短、更简单。只有当得到的串联至少与原......
  • Spring MVC学习随笔-控制器(Controller)开发详解:接受客户端(Client)请求参数
    学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅第三章、SpringMVC控制器开发详解3.1核心要点......
  • 华为认证 | Security安全认证学什么?IA、IP、IE学习内容详解!
    互联网高速发展的如今,网络安全愈发受到重视,所以很多互联网相关的认证都推出了安全方向的认证。作为国内一大厂商的华为自然也是不例外的,毕竟华为认证覆盖ICT全领域,怎么会少得了安全方向呢?那么网络安全华为认证到底是什么?有何用处?接下来在这篇文章中为大家讲解清楚。01网络安全华......
  • 华为认证 | 华为认证体系超全详解!
    华为作为全球领先的科技企业,其认证体系备受瞩目。华为认证体系是华为技术有限公司推出的全球性IT认证标准,旨在为全球范围内的企业和个人提供专业的IT技能认证。华为认证体系涵盖了路由、交换、安全、存储等多个领域,为IT从业者提供了全面的技能提升和认证机会。下面我们就来了解一下......
  • springBoot项目启动卡在Root WebApplicationContext: initialization completed... (非
    通过源码启动排查发现,初始化连接池时创建了200次,通过配置文件中将initialSize值改为10,启动时间从1分钟变为了3秒。 ......
  • WGCLOUD 基础详解 常用命令笔记
    WGCLOUD在v3.4.9版本新增了一个模块【常用命令笔记】这个模块非常有用,对我的工作非常有帮助,可以把我常用的一些命令或文档记录下来,也可以当作记事本使用,记录一些笔记使用简单,而且方便......
  • linux之进程控制(万字长文详解)
    进程控制进程创建——fork函数用于创建子进程的系统调用接口!这是一个函数函数执行前只有一个父进程,函数执行后有一个父进程一个子进程进程调用fork,当控制转移到内核中的fork代码后,内核做分配新的==内存块和内核数据结构(PCB,地址空间,页表)==给子进程将父进程部分数据结构内......