Intellij IDEA调试功能使用总结
2016-04-11 15:14
344 查看
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此。
先编译好要调试的程序。
![](http://www.th7.cn/d/file/p/2014/10/15/5c57a1dca4562c97d2ee977f8e62e46e.png)
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
![](http://www.th7.cn/d/file/p/2014/10/15/b7720d6905e17cae31f9a2eb122b5486.png)
点击红色箭头指向的小虫子,开始进入调试。
![](http://www.th7.cn/d/file/p/2014/10/15/8649a26ebddcfc086452b2fbfe682df6.png)
IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中 显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
3.1 step over
![](http://www.th7.cn/d/file/p/2014/10/15/e4a73da746cee4165aa911e3711261c8.png)
点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
3.2 step into
![](http://www.th7.cn/d/file/p/2014/10/15/1e59d45490f9c97810d2ba658928d7be.png)
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:
在自定义方法发f1()处设置断点,执行调试
![](http://www.th7.cn/d/file/p/2014/10/15/ae7c447a86760432528443883dee2afe.png)
点击
![](http://www.th7.cn/d/file/p/2014/10/15/3bc34dff04f6e57793b3e56ee413da00.png)
![](http://www.th7.cn/d/file/p/2014/10/15/3f27c8d104caaa81fbdc2f8c236ac9ed.png)
![](http://www.th7.cn/d/file/p/2014/10/15/9891f95f66ece8787735bcfb6a34b23d.png)
该按钮在调试的时候能进入任何方法。
3.4 step out
![](http://www.th7.cn/d/file/p/2014/10/15/34765b7352419d60974905e512ebc36a.png)
如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
3.5 Drop frame
![](http://www.th7.cn/d/file/p/2014/10/15/a95e8d1e3bf7b5c5124406091ddf257b.png)
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
4.1 跨断点调试
设置多个断点,开启调试。
![](http://www.th7.cn/d/file/p/2014/10/15/828104455e3cb9fd46b5e127e454c75f.png)
想移动到下一个断点,点击如下图:
![](http://www.th7.cn/d/file/p/2014/10/15/a2bacad6cf51969eeb76831e7893d8cf.png)
程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
4.2 查看断点
![](http://www.th7.cn/d/file/p/2014/10/15/cf38f9f1e1a2552c07ca26695af8ecf0.png)
点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
![](http://www.th7.cn/d/file/p/2014/10/15/dce00e5715e9dd9eb1d5c52588e8379d.png)
箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 c==97)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
4.3 设置变量值
![](http://www.th7.cn/d/file/p/2014/10/15/13bd39dfd7746320d2702ec2a96fa314.png)
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue...)。这个功能可以更加快速的检测你的条件语句和循环语句。
(--未完待续--)
先编译好要调试的程序。
1.设置断点
![](http://www.th7.cn/d/file/p/2014/10/15/5c57a1dca4562c97d2ee977f8e62e46e.png)
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
2.开启调试会话
![](http://www.th7.cn/d/file/p/2014/10/15/b7720d6905e17cae31f9a2eb122b5486.png)
点击红色箭头指向的小虫子,开始进入调试。
![](http://www.th7.cn/d/file/p/2014/10/15/8649a26ebddcfc086452b2fbfe682df6.png)
IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中 显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
3.单步调试
3.1 step over![](http://www.th7.cn/d/file/p/2014/10/15/e4a73da746cee4165aa911e3711261c8.png)
点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
3.2 step into
![](http://www.th7.cn/d/file/p/2014/10/15/1e59d45490f9c97810d2ba658928d7be.png)
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:
在自定义方法发f1()处设置断点,执行调试
![](http://www.th7.cn/d/file/p/2014/10/15/ae7c447a86760432528443883dee2afe.png)
点击
![](http://www.th7.cn/d/file/p/2014/10/15/3bc34dff04f6e57793b3e56ee413da00.png)
![](http://www.th7.cn/d/file/p/2014/10/15/3f27c8d104caaa81fbdc2f8c236ac9ed.png)
3.3 Force step into
![](http://www.th7.cn/d/file/p/2014/10/15/9891f95f66ece8787735bcfb6a34b23d.png)
该按钮在调试的时候能进入任何方法。
3.4 step out
![](http://www.th7.cn/d/file/p/2014/10/15/34765b7352419d60974905e512ebc36a.png)
如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
3.5 Drop frame
![](http://www.th7.cn/d/file/p/2014/10/15/a95e8d1e3bf7b5c5124406091ddf257b.png)
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
4. 高级调试
4.1 跨断点调试设置多个断点,开启调试。
![](http://www.th7.cn/d/file/p/2014/10/15/828104455e3cb9fd46b5e127e454c75f.png)
想移动到下一个断点,点击如下图:
![](http://www.th7.cn/d/file/p/2014/10/15/a2bacad6cf51969eeb76831e7893d8cf.png)
程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
4.2 查看断点
![](http://www.th7.cn/d/file/p/2014/10/15/cf38f9f1e1a2552c07ca26695af8ecf0.png)
点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
![](http://www.th7.cn/d/file/p/2014/10/15/dce00e5715e9dd9eb1d5c52588e8379d.png)
箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 c==97)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
4.3 设置变量值
![](http://www.th7.cn/d/file/p/2014/10/15/13bd39dfd7746320d2702ec2a96fa314.png)
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue...)。这个功能可以更加快速的检测你的条件语句和循环语句。
(--未完待续--)
相关文章推荐
- iOS学习笔记08-Quartz2D绘图
- iOS 离屏渲染的研究(二)
- A Bayesian Hierarchical Model for Learning Natural Scene Categories
- vim插件
- 构建之法阅读笔记05
- 我要转战wordpress啦
- Android 图片加载 BitmapFun
- 第40讲项目7——找数字
- protocolBuffer使用
- Youshua Bengio等人新书《Deep Learning》评介
- SpringMVC常用注解
- UnityEditor 如何将一个资源文件夹下的对象拖曳赋值到文件夹外的某个对象组件属性中
- Javascript异步编程的4种方法
- [LintCode] 跳跃游戏II Jump Game II
- eclipse如何查看jar包源码
- iOS学习笔记06-手势识别
- iOS学习笔记07-运动事件和远程控制
- 【剑指offer系列】 n个骰子的点数___43
- Windows 钩子技术详解
- SqlServer发送邮件