DevEco中对程序进行断点调试 原创 精华
在应用程序代码编写过程中,免不了出现运行结果出错或结果不符合预期效果的情况。运行出错后,可根据日志提示的错误信息去定位可能出错的位置是开发者最常用的错误解决方法。但是很多时候通过日志的错误提示并不一定能准确定位出错代码位置,所以开发者们往往需要借助于其它技术手段帮助进行错误定位和代码逻辑检查。常用的查错方法主要有以下几种:
1. 在适当位置插入“System.out.println(…)”语句。通过添加打印语句,一方面可在代码运行后查看中间参数的结果是否正确;另一方面,也可以根据打印结果是否正常显示来大致判断哪些代码段没有执行,从而分析出错位置以及出错原因。
2. 在适当位置插入日志输出语句。其功能和打印语句功能相同,但是日志可以根据紧急或严重程度定义不同级别的信息,方便后期对应用程序的维护。打印语句无法区分信息的紧要程度。因此,建议统一使用日志管理,而避免频繁使用System.out.println()方法。
3. 断点调试法。该方法可以在应用程序运行时一行一行的运行,每行代码运行后,该方法能够准确定位出错位置,并且能够随时监测中间变量或表达式的值,方便开发者快速解决应用中的bug。
断点调试步骤:
(1)在代码合适位置设置断点。在需要调试的代码片段中的某行代码前单击鼠标左键,该行代码前出现红色实心圆点,则表示断点设置成功(如图1,2所示)。每个java文件可以设置一个或多个断点。
::: hljs-center
图1
:::
::: hljs-center
图2
:::
(2)开启调试模式。点击菜单栏Run—>'Debug entry'(快捷键Shift+F9),或者点击菜单栏下方的快捷启动图标。开启调试模式后,程序会在断点处中断,并以高亮蓝色背景标识当前即将要运行的代码行。代码行末尾会显示目前各变量或参数的状态值,同时,实心断点图标上会出现“√”(如图3所示)。
::: hljs-center
图3
:::
(3)单步调试。在Debug选项卡中,可以看到当前的变量或参数状态值。通过上方的调试控制快捷图标可以控制程序单步执行代码。
::: hljs-center
图4
:::
部分常用调试控制快捷图标作用如下:
图标 | 快捷键 | 功能 |
---|---|---|
Step Over,快捷键F8 | 控制代码一行一行执行,每执行一行代码就产生一次中断 | |
Step Into,快捷键F7 | 如果当前将要执行的代码是方法时,点击该快捷图标则进入当前行代码的方法定义中的第一条代码 | |
Step Out,快捷键Shift+F8 | 跳出当前方法,转到该方法被调用处的代码行 | |
Run to Cursor,快捷键Alt+F9 | 应用执行直到下一个断点处,如果后续没有再设置断点,则应用运行直到结束 |
如果没有设置断点,开启调试模式,则运行结果等同于应用正常执行,不会产生中断。
点击左边图标,弹出断点对话框(Breakpoints对话框),可查看代码中设置的所有断点。选中某个断点后(如图5中Breakpoints对话框中的高亮蓝色所示),右下方可查看该断点的位置。
::: hljs-center
图5
:::