Android Studio调试功能使用总结【转】
2015-08-25 10:35
501 查看
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此。
先编译好要调试的程序。
![](http://images.cnitblog.com/blog/678394/201410/151259158735323.png)
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
![](http://images.cnitblog.com/blog/678394/201410/151317343268440.png)
点击红色箭头指向的小虫子,开始进入调试。
![](http://images.cnitblog.com/blog/678394/201410/151329200762451.png)
IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
![](http://images.cnitblog.com/blog/678394/201410/151453177943069.png)
点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
![](http://images.cnitblog.com/blog/678394/201410/151512184198702.png)
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:
在自定义方法发f1()处设置断点,执行调试
![](http://images.cnitblog.com/blog/678394/201410/151517434823146.png)
点击
![](http://images.cnitblog.com/blog/678394/201410/151519512481412.png)
![](http://images.cnitblog.com/blog/678394/201410/151521157799203.png)
![](http://images.cnitblog.com/blog/678394/201410/151527173413228.png)
该按钮在调试的时候能进入任何方法。
![](http://images.cnitblog.com/blog/678394/201410/151533211693613.png)
如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
![](http://images.cnitblog.com/blog/678394/201410/151546526071547.png)
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
设置多个断点,开启调试。
![](http://images.cnitblog.com/blog/678394/201410/151613018572228.png)
想移动到下一个断点,点击如下图:
![](http://images.cnitblog.com/blog/678394/201410/151621381853869.png)
程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
![](http://images.cnitblog.com/blog/678394/201410/151659476073800.png)
点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
![](http://images.cnitblog.com/blog/678394/201410/151704535299227.png)
箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 c==97)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
![](http://images.cnitblog.com/blog/678394/201410/151729519513970.png)
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue...)。这个功能可以更加快速的检测你的条件语句和循环语句。
先编译好要调试的程序。
1.设置断点
![](http://images.cnitblog.com/blog/678394/201410/151259158735323.png)
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
2.开启调试会话
![](http://images.cnitblog.com/blog/678394/201410/151317343268440.png)
点击红色箭头指向的小虫子,开始进入调试。
![](http://images.cnitblog.com/blog/678394/201410/151329200762451.png)
IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
3.单步调试
3.1 step over
![](http://images.cnitblog.com/blog/678394/201410/151453177943069.png)
点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
3.2 step into
![](http://images.cnitblog.com/blog/678394/201410/151512184198702.png)
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:
在自定义方法发f1()处设置断点,执行调试
![](http://images.cnitblog.com/blog/678394/201410/151517434823146.png)
点击
![](http://images.cnitblog.com/blog/678394/201410/151519512481412.png)
![](http://images.cnitblog.com/blog/678394/201410/151521157799203.png)
3.3 Force step into
![](http://images.cnitblog.com/blog/678394/201410/151527173413228.png)
该按钮在调试的时候能进入任何方法。
3.4 step out
![](http://images.cnitblog.com/blog/678394/201410/151533211693613.png)
如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
3.5 Drop frame
![](http://images.cnitblog.com/blog/678394/201410/151546526071547.png)
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
4. 高级调试
4.1 跨断点调试
设置多个断点,开启调试。![](http://images.cnitblog.com/blog/678394/201410/151613018572228.png)
想移动到下一个断点,点击如下图:
![](http://images.cnitblog.com/blog/678394/201410/151621381853869.png)
程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
4.2 查看断点
![](http://images.cnitblog.com/blog/678394/201410/151659476073800.png)
点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
![](http://images.cnitblog.com/blog/678394/201410/151704535299227.png)
箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 c==97)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
4.3 设置变量值
![](http://images.cnitblog.com/blog/678394/201410/151729519513970.png)
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue...)。这个功能可以更加快速的检测你的条件语句和循环语句。
相关文章推荐
- Android Fragment 详细翻译
- Android画布更新过程OnDraw调用过程
- ViewPager实现引导页
- 总结系列-Android的文件系统
- Android自动化测试框架对比
- android user如何打开一个版本号root才干
- AndroidManifest中activity属性参数设置大全
- Android studio百度地图定位和地图开发
- 【转】Android 消息机制
- Android性能优化典范(三)
- Android自定义对话框(Dialog)位置,大小
- Android中的动画,属性动画
- Android 安全机制
- Android中View的绘制过程 onMeasure和onLayout()方法
- android下隐藏标题栏
- Android Studio快捷键
- Android-加载大图片
- Android控件使用—Fragment的基础知识
- Android 深入理解Android中的自定义属性
- Android中的动画,自定义补间动画