idea bug调试

Posted fshblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了idea bug调试相关的知识,希望对你有一定的参考价值。

idea 调试工具的使用

原文:https://blog.csdn.net/hao_hl1314/article/details/53120918

Intellij IDEA Debug调试区工具的使用方法

 

快捷键
F9          resume programe       恢复程序
Alt+F10       show execution point    显示执行断点
F8          Step Over          相当于eclipse的f6      跳到下一步
F7          Step Into          相当于eclipse的f5就是  进入到代码
Alt+shift+F7     Force Step Into      这个是强制进入代码
Shift+F8       Step Out          相当于Eclipse中,f8跳到下一个断点/f7跳出函数
Atl+F9        Run To Cursor       运行到光标处
ctrl+shift+F9     Debug运行java类
ctrl+shift+F10    正常运行java类
alt+F8        Debug时选中查看值

 

先编译好要调试的程序。

1.设置断点

技术图片

选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。

2.开启调试会话

技术图片

点击红色方框的小虫子,开始进入调试。

技术图片

IDE下方出现Debug视图,红色的方框是现在调试程序停留的代码行,方法f2()中,程序的第14行。右下方是方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。

3.单步调试

3.1 step over

技术图片

点击红色方框的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)

3.2 step into

技术图片

点击红色方框的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:

在自定义方法发test处设置断点,执行调试

技术图片

点击 

技术图片

3.3 Force step into

技术图片

该按钮在调试的时候能进入任何方法。

3.4 step out

技术图片

如果在调试的时候你进入了一个方法(如test()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。

3.5 Drop frame

技术图片

点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。

4. 高级调试

4.1 跨断点调试

设置多个断点,开启调试。

技术图片

想移动到下一个断点,点击如下图:

技术图片

程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。

4.2 查看断点

技术图片

点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。

技术图片

箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 i==7)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。

4.3 设置变量值

技术图片

调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue...)。这个功能可以更加快速的检测你的条件语句和循环语句。

以上是关于idea bug调试的主要内容,如果未能解决你的问题,请参考以下文章

深入学习 Intellij IDEA 调试技巧

我通过调试ConcurrentLinkedQueue发现一个IDEA的小虫子(bug), vscode复现, eclipse毫无问题

使用Idea工具 在本地代码上远程调试 生产或测试环境的代码

使用Idea工具 在本地代码上远程调试 生产或测试环境的代码

使用Idea工具 在本地代码上远程调试 生产或测试环境的代码

IDEA远程调试