diff --git a/TOC.md b/TOC.md index 53f9a32d..d4526652 100644 --- a/TOC.md +++ b/TOC.md @@ -18,4 +18,5 @@ - [插件讲解](plugins-settings.md) - [Eclipse 的 Java Web 项目环境搭建](eclipse-java-web-project-introduce.md) - [Maven 项目介绍](maven-project-introduce.md) +- [Debug 讲解](debug-introduce.md) - [IntelliJ IDEA 常用快捷键讲解](keymap-introduce.md) diff --git a/debug-introduce.md b/debug-introduce.md new file mode 100644 index 00000000..afc65030 --- /dev/null +++ b/debug-introduce.md @@ -0,0 +1,50 @@ +# Debug 介绍 + +## Debug 设置 + +![Debug 设置](images/xxiii-a-debug-settings-1.jpg) + +> * 如上图标注 1 所示,表示设置 Debug 连接方式,默认是 `Socket`。`Shared 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 特殊技能使用 + + +![Debug 特殊技能使用](images/xxiii-b-debug-use-1.gif) + +> * 如上图 Gif 所示,查看所选对象的方法常用有三种方式: +>> * 选中对象后,使用快捷键 `Alt + F8`。 +>> * 选中对象后,拖动对象到 `Watches`。 +>> * 选中对象后,鼠标悬停在对象上 2 秒左右。 + +![Debug 特殊技能使用](images/xxiii-b-debug-use-2.gif) + +> * 如上图 Gif 所示,在弹出表达式输入框中 IntelliJ IDEA 也是能帮我们智能提示。 + +![Debug 特殊技能使用](images/xxiii-b-debug-use-3.gif) + +> * 如上图 Gif 所示,当我们需要过掉后面的所有断点的时候,我们不需要去掉这些断点,只需要点击左下角那个小圆点,点击小圆点之后,所有断点变成灰色,然后我们再在按快捷键 `F9` 即可过掉当前和后面所有的断点。 + +![Debug 特殊技能使用](images/xxiii-b-debug-use-4.gif) + +> * 我们可以给断点设置进入的条件。如上图 Gif 所示,因为变量 temp3 不等于 200 所以该断点没有被进入直接跳过。 + +![Debug 特殊技能使用](images/xxiii-b-debug-use-5.gif) + +> * 有时候当我们步入方法体之后,还想回退到方法体外。如 Gif 演示,断点进入 `addNum` 方法后,点击 `Drop Frame` 按钮之后,断点重新回到方法体之外。 \ No newline at end of file diff --git a/images/xxiii-a-debug-settings-1.jpg b/images/xxiii-a-debug-settings-1.jpg new file mode 100644 index 00000000..cb9d0f8b Binary files /dev/null and b/images/xxiii-a-debug-settings-1.jpg differ diff --git a/images/xxiii-b-debug-use-1.gif b/images/xxiii-b-debug-use-1.gif new file mode 100644 index 00000000..668742b1 Binary files /dev/null and b/images/xxiii-b-debug-use-1.gif differ diff --git a/images/xxiii-b-debug-use-2.gif b/images/xxiii-b-debug-use-2.gif new file mode 100644 index 00000000..29144dc1 Binary files /dev/null and b/images/xxiii-b-debug-use-2.gif differ diff --git a/images/xxiii-b-debug-use-3.gif b/images/xxiii-b-debug-use-3.gif new file mode 100644 index 00000000..72422ff4 Binary files /dev/null and b/images/xxiii-b-debug-use-3.gif differ diff --git a/images/xxiii-b-debug-use-4.gif b/images/xxiii-b-debug-use-4.gif new file mode 100644 index 00000000..82fd3dfc Binary files /dev/null and b/images/xxiii-b-debug-use-4.gif differ diff --git a/images/xxiii-b-debug-use-5.gif b/images/xxiii-b-debug-use-5.gif new file mode 100644 index 00000000..5e904026 Binary files /dev/null and b/images/xxiii-b-debug-use-5.gif differ diff --git a/keymap-introduce.md b/keymap-introduce.md index b11f218e..b1e4a08f 100644 --- a/keymap-introduce.md +++ b/keymap-introduce.md @@ -41,7 +41,7 @@ IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各 |Ctrl + F1|在光标所在的错误代码出显示错误信息| |Ctrl + F3|调转到所选中的词的下一个引用位置| |Ctrl + F4|关闭当前编辑文件| -|Ctrl + F8|在 Debug 模式下,切换断点| +|Ctrl + F8|在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点| |Ctrl + F9|执行 Make Project 操作| |Ctrl + F11|选中文件 / 文件夹,使用助记符设定 / 取消书签| |Ctrl + F12|弹出当前文件结构层,可以在弹出的层上直接输入,进行筛选| @@ -89,7 +89,7 @@ IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各 |Shift + F3|在查找模式下,查找匹配上一个| |Shift + F6|对文件 / 文件夹 重命名| |Shift + F7|在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法| -|Shift + F8|在 Debug 模式下,跳出| +|Shift + F8|在 Debug 模式下,跳出,表现出来的效果跟 `F9` 一样| |Shift + F9|等效于点击工具栏的 `Debug` 按钮| |Shift + F10|等效于点击工具栏的 `Run` 按钮| |Shift + F11|弹出书签显示层| @@ -150,7 +150,7 @@ IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各 |Ctrl + Shift + \+|展开所有代码| |Ctrl + Shift + \-|折叠所有代码| |Ctrl + Shift + F7|高亮显示所有该选中文本,按Esc高亮消失| -|Ctrl + Shift + F8|在 Debug 模式下,指定断点条件| +|Ctrl + Shift + F8|在 Debug 模式下,指定断点进入条件| |Ctrl + Shift + F9|编译选中的文件 / 包 / Module| |Ctrl + Shift + F12|编辑器最大化| |Ctrl + Shift + Space|智能代码提示| @@ -173,6 +173,7 @@ IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各 |Alt + Shift + C|查看最近操作项目的变化情况列表| |Alt + Shift + F|添加到收藏夹| |Alt + Shift + I|查看项目当前文件| +|Alt + Shift + F7|在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入| |Alt + Shift + F9|弹出 `Debug` 的可选择菜单| |Alt + Shift + F10|弹出 `Run` 的可选择菜单| |Alt + Shift + 左键双击|选择被双击的单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句| @@ -195,9 +196,9 @@ IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各 |F2|跳转到下一个高亮错误 或 警告位置 `(必备)` | |F3|在查找模式下,定位到下一个匹配处| |F4|编辑源| -|F7|在 Debug 模式下,进入| -|F8|在 Debug 模式下,跳过,进入下一步| -|F9|在 Debug 模式下,恢复程序运行| +|F7|在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中| +|F8|在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内| +|F9|在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上| |F11|添加书签| |F12|回到前一个工具窗口| |Tab|缩进| diff --git a/project-settings.md b/project-settings.md index 2355a302..1613bdbc 100644 --- a/project-settings.md +++ b/project-settings.md @@ -58,4 +58,11 @@ > * 如上图标注 1 所示,`.idea` 即为 `Project` 的配置文件目录。 > * 如上图标注 2 所示,`.iml` 即为 `Module` 的配置文件目录。 -> * 通过上面的了解我们也知道 IntelliJ IDEA 项目的配置变动都是以这些 XML 文件的方式来表现的,所以我们也可以通过了解这些 XML 文件来了解 IntelliJ IDEA 的一些配置。也因为此特性,所以如果在项目协同中,我们要保证所有的项目配置一致,就可以考虑把这些配置文件上传到版本控制中。如果把这些文件加入到版本控制之后,那又有一点是需要考虑的,那就是协同者 Checkout 项目下来之后,按自己的需求进行项目配置的之后,项目的 XML 文件也会跟着变化。此时协同者的这些变化的文件就不应该再上传到版本控制中。至于如何更好地控制这些不想随时提交的文件,在接下来的版本控制专讲中会进行详细讲解。 \ No newline at end of file +> * 通过上面的了解我们也知道 IntelliJ IDEA 项目的配置变动都是以这些 XML 文件的方式来表现的,所以我们也可以通过了解这些 XML 文件来了解 IntelliJ IDEA 的一些配置。也因为此特性,所以如果在项目协同中,我们要保证所有的项目配置一致,就可以考虑把这些配置文件上传到版本控制中。如果把这些文件加入到版本控制之后,那又有一点是需要考虑的,那就是协同者 Checkout 项目下来之后,按自己的需求进行项目配置的之后,项目的 XML 文件也会跟着变化。此时协同者的这些变化的文件就不应该再上传到版本控制中。至于如何更好地控制这些不想随时提交的文件,在接下来的版本控制专讲中会进行详细讲解。 + +## 特别介绍 + +> * IntelliJ IDEA 是一个没有 `Ctrl + S` 的 IDE,所以每次修改完代码你只要管着运行或者调试即可,无需担心保存或者丢失代码。 +> * 现在,放心、大胆地开始你的 Hello World。 + +