idea断点调试

断点调试

前言

大家在开发的过程肯定会遇到bug,那大家是怎么找出bug的呢,System.out.println()?呃,这种也是一种方式,但是如果我们想更便捷的开发,不得不了解Debug调试工具了。当你对各种可能出现的bug的数据进行输出时,会debug的童鞋已经拿到了运行期间所有的数据,并且能对数据进行操作,可以说不会Debug的程序猿不是一个合格的程序猿。

古人云:工欲善其事必先利其器,那下面就跟着小编来学习Debug吧。

1. 由来

DEBUG是计算机排除故障的意思。马克2号(Harvard Mark II)编制程序的格蕾丝·霍珀(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍珀诙谐地把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,那这个词也就这么来了.

那到了今天Debug究竟是什么意思呢?其实从本质上来说, Debug是一种程序,一种调试工具,说白了就是供程序员检查修改问题的工具。

2. 启动 debug 模式

1. 启动debug模式,方便随时调试代码

image-20210119145007410

2. 设置debug窗口

勾选 Show debug wndow on beakpint 之后,运行到第一个断点会直接激活debug窗口

image-20210119145624095

3. 设置断点

在想要设置断点的所在行的左边行号栏点击左键

image-20210119145925723

或者在想要设置断点的所在行使用快捷键 Ctrl + F8 设置/取消断点

4. 调试按钮&服务按钮

1. 调试按钮

image-20210119150339452

Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行;

Step Over (F8):步过,一行一行地往下走,执行行存在方法也不跳入;

Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。

Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。

Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。

Drop Frame(无快捷键):回退断点,有时候当我们步入方法体之后,还想回退到方法体外,点这个按钮后,断点重新回到方法体之外。在继续还是可以再次进到方法内

Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。前提是在光标定位和执行行之间没有断点

Evaluate Expression (Alt + F8):计算表达式,可以计算想要查看代码的值。

这个表达式不仅可以是一般变量或参数,也可以是方法,当你的一行代码中调用了几个方法时,就可以通过这种方式查看查看某个方法的返回值。

image-20210119162839769

2. 服务按钮

image-20210119155509131

Rerun ‘xxx’(Ctrl + F5): 重新运行程序,会关闭服务后重新启动程序

Roggle auto-test:切换自动化测试

Resume Program (F9):遇到断点停下,没有断点则运行完整个流程;

Pause Program:暂停程序,启用Debug

Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。

View Breakpoints (Ctrl + Shift + F8):查看所有断点

Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰色,失效。如果只想使某一个断点失效,可以在断点上右键取消Enabled,如图下图,则该行断点失效,断点失效后变为空心圆圈。

image-20210119164435202

5. 变量查询

1. 在需要查看的变量上,鼠标悬停 2s 左右

image-20210119161014112

2. Alter + 鼠标左键

点啥看啥,非常滴方便

image-20210119161301091

3. 在 Variables 中查看

Variables中显示已运行程序的所有变量

image-20210119161538713

4. 在 Watches 中查看

可以点击 加号,输入要查看的变量,也可以直接同 Variables 中拖入 Watches 中查看

点击 Variables 操作栏中的
img

图标,调出Watches栏

image-20210119162402664
image-20210119161950672

5. 利用计算表达式查看

image-20210119162632290

6. 变量修改

在调试代码的时候,实时的修改运行状态的代码变量的值

在 variables 中选中需要修改的字段,右键 Set Value (F2)

image-20210119163506167

7. 断点条件设置

通过设置断点条件,在满足条件时,才停在断点处,否则直接运行

场景举例:如果我们遍历一个比较大的集合或者数组是,在循环体内部设置了一个断点,如果没有断点条件设置,我们就需要一个一个的查看变量的值,这样肯定不是我们想看到的。

这时候就可以用到断点条件设置,在断点上右键 在 Conditions下方的框中设置条件,设置之后,只有满足条件的情况下断点才会有效,否则直接跳过。

image-20210119194645501
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,188评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,464评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,562评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,893评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,917评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,708评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,430评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,342评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,801评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,976评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,115评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,804评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,458评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,008评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,135评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,365评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,055评论 2 355

推荐阅读更多精彩内容