Debug断点跟踪调试是软件开发过程中剖析代码、解决BUG的一个重要伎俩,不同IDE下的Debug工具的应用有所不同,但提供的调试性能肯定是包罗万象。很多程序员的Debug能力都停留在根本的单步执行、断点跳跃上,殊不知还有很多鲜为人知但十分不便的调试技巧。本文就以Android Studio工具为例,展现一些个别人不晓得的Debug调试技巧,把握这些,你也算是Debug调试巨匠了。
根本应用
Debug App有两种路径,第一种是间接点击下图运行按钮右侧的小虫状图标,运行并调试以后Project,这个我想大家都晓得。
Debug App.png
第二种就是调试以后曾经处于运行状态下的App,这也是咱们用的更多的一种调试伎俩,即Attach debugger to Android process
。点击运行按钮右侧第三个按钮,弹出Choose Process
窗口,抉择对应的过程,点击OK按钮即可进入调试模式,此时,咱们便能够在须要的中央间接下断点调试代码了:
Attach debugger to Android process.png
接下来就是常见的调试办法了,在Debug窗口顶部工具栏有一排操作按钮,比方Step Over
(单步执行)、Step Into
(进入办法)等,如图所示:
Debug窗口.png
打断点和勾销断点最间接的形式就是单击指标代码行的行号右侧空白处,而后在Debug窗口左侧有个断点浏览按钮View Breakpoints
,位于进行按钮下方第一个,能够浏览Project中的所有断点,同时能够增加删除断点:
View Breakpoints.png
条件断点
有时候,咱们的断点打在了循环体外面,然而咱们只想看某一特定循环次数下的运行状况,难道要应用Run to Cursor
性能不停地跳至下一次断点直至满足咱们的要求吗?
循环里的断点.png
如果你晓得条件断点的话,肯定会悔不当初。条件断点能够满足开发人员本人输出条件,比方fori
循环中输出i == 5
即可让程序间接运行至第六次循环,for each
循环中针对list某一元素下的断点调试。只须要右键点击断点,在弹出的窗口中输出Condiction条件,点击Done
按钮,而后当程序执行到循环体时,会在满足条件的一次循环中停下来,供咱们调试:
条件断点.png
日志断点
打印日志也是跟踪程序剖析问题的一个十分无效的伎俩,然而如果咱们的程序曾经运行并且处于调试模式,此时如果想打印日志更加直观的剖析代码,难道还要进行调试、增加Log代码并从新编译运行吗?
如果你晓得日志断点,就不必如此大费周折,费时费力了。还是右键点击断点,在弹出的窗口中勾销勾选Suspeng
复选框(即示意程序运行至此断点时不会停下来供开发者调试),而后勾选Log evaluated expression:
,并输出打印语句即可。这样,当Debug模式下的程序执行至此,不会停下来,而是在控制台中打印对应信息,如:
日志断点.png
变量赋值
比方,咱们的代码里有一个变量,这个变量的值会影响到程序的执行后果。如果咱们想察看这个变量在不同的赋值下程序的执行后果怎么办呢?难道要一遍遍的在代码里批改变量值,而后从新运行程序吗?显然这是十分麻烦的操作。其实,如果利用Debug模式下的变量赋值(Set Value),只须要运行一次,就能达到咱们的察看成果。在应用该变量的代码处打个断点,而后在Variables
窗口找到对应的变量,批改变量值并执行即可。
Set Value.png
变量察看
在Variables
变量区和Watches
察看区能够查看Debug模式下,程序执行到断点处的变量值或者对象的各属性值,然而多多少少查看起来还是有些不不便。其实能够通过弹出窗口的模式查看属性值,只有将光标定位至断点代码行所用到的变量,IDE会自动弹出一个小窗口,如下图所示,此时,应用对应的快捷键或者点击这个小窗口里的变量即可弹出变量属性值窗口,Mac下的快捷键位command + F1
,如图所示:
变量察看01.png
变量察看02.png
对象求值
在断点处,如果有变量对象,零碎提供了表达式求值性能,针对Variables
视图中的变量对象,咱们能够输出任何计算语句,实时查看表达式计算结果。具体操作为,右键Variables
视图中的变量对象,抉择Evaluate Expression
,弹出表达式窗口,输出任何你想要的计算语句,点击Evaluate
计算按钮,即可显示Result后果:
Evaluate Expression01.png
Evaluate Expression02.png
办法断点
通常咱们会对办法里的代码增加断点调试,很少对办法自身调试。其实,如果只是为了看到办法的参数和返回后果,咱们能够在定义方法的第一行打断点,间接对办法自身调试,此时断点的展现图标款式也会不同凡响:
办法断点.png
变量断点
有时候,咱们想晓得自定义的变量的何时何地产生了扭转,就能够应用变量断点。变量断点的图标款式也不同凡响,在变量定义行打断点,开启Debug模式,在程序执行的过程中,如果该变量的值产生扭转,程序会主动停下来,并定位在扭转变量值的中央,供开发者调试:
变量断点.png
异样断点
程序在执行的过程中可能会呈现各种各样的未知性异样,如果能在产生异样的时候第一工夫让程序停下来,并定位到异样呈现的中央,供开发者调试,那当然是极好的。而万能的Android Studio就提供了这样的性能。
关上断点管理器,这里有两种形式关上:点击工具栏菜单Run
,抉择View Breakpoints
;在Debug窗口间接点击View Breakpoints
图标。点击左上角加号按钮,能够增加各种断点,包含前文提到的Method Breakpoints
和Field Watchpoints
断点,这里咱们抉择Exception Breakpoints
异样断点,在弹出的Enter Exception Class
窗口中输出须要监控的异样类别即可:
Breakpoints.png
Exception Breakpoints.png
欢送补充
以上便是应用Android Studio工具的开发过程中很是实用但却少见的Debug调试技巧,当然所有这些操作都能够通过快捷键关上,将鼠标光标移到对应图标处,都会显示对应快捷键组合,大家自行酌情应用。
当然,如果你还有更好的调试技巧,欢送留言补充,让咱们一起在分享中学习,交换中提高。
相干教程
Android根底系列教程:
Android根底课程U-小结_哔哩哔哩_bilibili
Android根底课程UI-布局_哔哩哔哩_bilibili
Android根底课程UI-控件_哔哩哔哩_bilibili
Android根底课程UI-动画_哔哩哔哩_bilibili
Android根底课程-activity的应用_哔哩哔哩_bilibili
Android根底课程-Fragment应用办法_哔哩哔哩_bilibili
Android根底课程-热修复/热更新技术原理_哔哩哔哩_bilibili
本文转自 https://juejin.cn/post/6844903457619443719,如有侵权,请分割删除。