赞
踩
debug作为程序员的基础技能之一,在实际项目开发的排错中非常好用。
debug不仅可以让我们更快定位到问题所在,而且debug模式的使用,也让程序员更清楚地了解到代码运行背后的逻辑。
这篇文章为大家介绍一下IntelliJ IDEA中,debug在各种场景下的使用方法,主要分为基本使用和高级bebug两部分。
行断点是debug模式中最常见的一种,直接在所需要debug的行打断点即可。程序调试到该行时,会自动停下并给出相关信息、日志等。
具体如图1-1-1所示:
详细断点的用法是在需要断点的行左边:鼠标左键+shift,出现图1-2-1所示配置界面。
该用法可以按照条件自行进行配置,一般而言,该方法调试过后会在控制台输出详细的信息,如调用的方法、所属类名等,具体如图1-2-2所示。
方法断点是debug模式中较为常见的一种,最主要的作用是可以定位到该方法的接口和实现类。
特别是导入外部包类的时候,可以快速明确该方法的所属包类,进而更方便地解决问题。
具体如图1-3-1所示:
异常断定是debug模式中有效定位异常的一种方式,并且可以设置项目中自定义的一些异常。
即只要代码运行或者debug时出现了异常,则会停在该异常处,提示该处发生异常。具体如图1-4-1所示:
读写断点主要是对类成员的声明周期进行一个监控,可以按照代码运行的顺序准确地描述出该成员在生命周期中的情况。
对与成员变量的debug,如图1-5-1所示:
例如图1-5-2,有参构造第一次为对象设置值时:
随后在使用@Data注解的前提下,为该对象的age属性再一次设置值,如图1-5-3所示:
Debug中的条件表达式可以在执行断点的时候,对需要调试的代码行添加条件,如对变量取模、调试指定线程等。
在for循环中,条件表达式中的i往往要循环多次,点击断点右键即可出现条件面板,当i取模为2时执行debug,这样就可以在调试的时候将程序停在我们想要停的地方。具体如图2-1-1所示:
我们在调试的时候,无论是对某个变量或者方法进行调试时,debugger都会表明该断点调试所在的线程。
当我们要指定调试某个线程时,可以在条件面板中指定需要调试的线程名,具体如图2-1-2所示:
我们在调试的时候,除了看代码中的变量、方法的执行过程外,有的时候还想看看与之相关的堆栈信息。
看看代码在运行的同时,堆栈里发生什么变化。
点击断点右键,More(Ctrl+Shift+F8) 调出更为详细的配置面板,勾选“断点信息”与“堆栈”即可。如图2-2-1所示:
点击调试后的效果如图2-2-2所示:
当我们在调试时,如果在某个方法内有许多行代码,而你只想调试其中的某一行代码,不接着往下调试,那么可以选择debug的Force return(强制返回),就可以跳过后面的代码执行直接跳出方法。具体如图2-3-1所示:
结果只调试了指定的一行代码,具体效果如图2-3-2所示:
作为程序员虽然每天都要和debugger打交道,下面详细地为大家介绍一下这些快捷键的使用方法,提升大家在开发调试中的效率。
Debugger面板如图2-4-1所示,标注了每个常用快捷键的代号,下面我会根据代号一一为大家展开说明。
横排总共有8个图标:
定位至断点停顿的地方:当我们在调试到该断点时,如果我们想跳转到其它类、方法、变量或者是源码去观察整段代码的逻辑,点击这个图标,就可以回到当前断定的位置。
一行行地往下执行代码:不管断点所在行中的代码是否会调用别的方法、引用别的变量,该行执行完毕后接着执行下一行。
进入/返回到该断点的定义处:如图2-4-2所示,断点打在execute()方法上,点击step into即可跳转到该方法的定义处,step out则是返回到断点处。
强制进入断点的内部:如下图2-4-3所示,断在所在行有一个append方法,点击Force Step Into图标后,即进入了该方法的内部(JDK的源码),如图2-4-4所示。
JDK8的append方法内部:
跳过当前帧:点击该图标即可跳过当前的断点的堆栈帧,回退到该方法调用的地方。
直接调试光标所在行代码:如果在debug调试中遇到多行代码需一步步执行,但想跳过不必要的代码行,那么将鼠标光标放在想调试的代码行处,点击Run to Cursor即可调试该行代码。
表达式分析:可以在断点所在行执行Evaluate,即可在弹出的窗口预先看到执行结果。
竖排总共有5个图标:
重新进行debug。
Resume Program:如果下面代码没有断点,那么执行完全部代码;如果下面有代码,那么跳转到下一个断点。
Stop Debug:停止debug调试。
View Breakpoints:查看目前所有断点的详情。
Mute Breakpoints:取消所有设置的断点。
这是IDEA的debug中专门针对java8的Stream流提供的追踪调试功能,该功能可以清楚地看到每个流变量的去向,该功能需要在较高版本的IDEA中才具备。具体如图2-5-1所示:
我们在项目开发中,不可避免地会遇到程序发生异常的情况:如返回结果不对、 没响应,肉眼又发现不了的的错误等,这时调试代码可以帮我们理清思路,找到问题所在,追根溯源地从根本发现问题、解决问题。
在IntelliJ IDEA中各种场景下debug的使用方法到这里就分享结束了,感谢大家点开阅读,如有错误,不吝赐教!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。