IntelliJ IDEA 学习笔记 - Debug 介绍

本文简单介绍IntelliJ IDEA中Debug的使用技巧,参考IntelliJ IDEA 简体中文专题教程,英文好的同学可以查看英文官网文档

Debug 设置

  使用File -> Settings -> Build, Execution, Deployment -> Debugger可以打开Debug设置界面,如下图

  IntelliJ IDEA 学习笔记 - Debug 介绍_第1张图片

  Transport表示设置 Debug 连接方式,默认是 SocketShared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 Socket 会快点

Debug 常用快捷键

快捷键 介绍
F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中
F8 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
F9 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上
Alt + F8 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果
Ctrl + F8 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点
Shift + F7 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法
Shift + F8 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样
Ctrl + Shift + F8 在 Debug 模式下,指定断点进入条件
Alt + Shift + F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入

Debug 技巧

Debug 时查看对象的几种方法

  1. 在Variables窗口直接查看

  IntelliJ IDEA 学习笔记 - Debug 介绍_第2张图片

  2. 使用快捷键 Alt + F8

  IntelliJ IDEA 学习笔记 - Debug 介绍_第3张图片

  这种方法还可以对变量进行一定的加工,比如

  IntelliJ IDEA 学习笔记 - Debug 介绍_第4张图片

  或者

  IntelliJ IDEA 学习笔记 - Debug 介绍_第5张图片

  3. 拖动对象到 Watches窗口

  IntelliJ IDEA 学习笔记 - Debug 介绍_第6张图片

  4. 鼠标悬停在对象上 2 秒左右

  IntelliJ IDEA 学习笔记 - Debug 介绍_第7张图片

快速跳过后面的断点

  当我们需要过掉后面的所有断点的时候,我们不需要去掉这些断点,只需要点击左下角Mute Breakpoints,之后,所有断点变成灰色,然后我们再按快捷键 F9 即可过掉当前和后面所有的断点,如图

  IntelliJ IDEA 学习笔记 - Debug 介绍_第8张图片

设置断点进入条件

  1. 在断点上点击鼠标右键

  IntelliJ IDEA 学习笔记 - Debug 介绍_第9张图片

  2. 使用快捷键 Ctrl + Shift + F8

  IntelliJ IDEA 学习笔记 - Debug 介绍_第10张图片

  断点进入条件在对循环进行调试时会经常用到,常用于观察循环变量满足某一条件时的循环体执行情况

更复杂的步入条件

  可以设置断点在跳过多少次后开始步入,这在循环中也比较常用,比如要查看一个变量循环 3 次后的结果,设置方法如下图

  IntelliJ IDEA 学习笔记 - Debug 介绍_第11张图片

  对于某些不重要的断点,只要步入一次就够了,就可以勾选Remnove once hit,让它步入之后自动删除,如下图

  IntelliJ IDEA 学习笔记 - Debug 介绍_第12张图片

  对于某些场景的断点,需要其他断点先触发之后再进行触发,可以如下图选择。默认选择的是: None

  IntelliJ IDEA 学习笔记 - Debug 介绍_第13张图片

从方法体中跳出

  有时候当我们步入方法体之后,还想回退到方法体外。可以点击 Drop Frame 按钮实现,如下图

  IntelliJ IDEA 学习笔记 - Debug 介绍_第14张图片

其他

  如下图

  IntelliJ IDEA 学习笔记 - Debug 介绍_第15张图片

你可能感兴趣的:(IntelliJ,IDEA,学习笔记,intellij,idea)