Android studio 断点调试、日志断点

目录

  • 参考文章
  • 1、运行调试
  • 2、调试操作
  • 3、断点类型
    • 行断点的使用场景
      • 属性断点的使用场景
      • 异常断点的使用场景
      • 方法断点的使用场景
      • 条件断点
      • 日志断点
  • 4、断点管理区
  • 5、Attach Debugger to Android Process调试
  • 6、调试快捷键

参考文章

参考文章

参考文章

1、运行调试

开启 Debug 调试模式有两种方式:

在这里插入图片描述

Debug Run:直接以 Debug 模式运行 APP,该模式的优点是可以调试程序启动相关的代码, 例如Application.onCreate()。

Attach To Process:在程序运行中选择进程来调试,该模式的优点是随时可开启、关闭 Debug 模式,使用灵活方便。

注意:Debug Run 会导致程序整体变慢,建议使用等待调试,使用该方式可以在启动应用后处于等待状态,在开启调试后,应用才会走初始化流程,有两种方式开启等待断点:

  • 方法1:「开发者选项 – 选择调试应用」的方式来调试应用启动阶段代码。具体方式为「选择调试应用」-> 「运行应用」-> 「Attach To Process」,然后等待断点执行即可。
  • 方法2:使用adb命令adb shell am set-debug-app -w –persistent 包名开启,「-w」即表示应用启动时等待调试程序;关闭使用adb shell am clear-debug-app。

2、调试操作

在这里插入图片描述

  1. Show Execution Point(Alt+F10) :跳到当前执行的断点处。

执行前:

在这里插入图片描述

执行后,直接跳转到当前执行的断点处:

在这里插入图片描述

  1. Step Over(F8):单步执行,执行到当前行的下一行。

执行前:

在这里插入图片描述

执行后:

在这里插入图片描述

  1. Step Into(F7):进入正在执行的方法。

执行前:

在这里插入图片描述

执行后:

在这里插入图片描述

  1. Focus Step Into(Alt+shift+F7):同3,但是可以进入源码,在3无法进入的情况下,可以尝试该操作。
  2. Step Out(shift + F8):跳出正在执行的方法。

执行前:

在这里插入图片描述

执行后

在这里插入图片描述

  1. Drop Frame:返回到当前方法的调用处。
  2. Run to Cursor(Alt+F9):运行到光标处(光标必须在当前断点位置后)。

执行前:这里是引用

执行后:

在这里插入图片描述

  1. Evaluate expression:计算选中的变量的值。

    在这里插入图片描述

3、断点类型

断点分为以下类型:

  • 行断点: 当执行到此行是停止执行,等待调试。
  • 属性断点:打在类的成员变量上,当变量初始化或变量的值改变时触发断点。
  • 异常断点:当抛出指定异常时触发断点。
  • 方法断点:当需要知道一个方法的调用方时。
  • 条件断点
  • 日志断点

行断点的使用场景

属性断点的使用场景

当你遇到一个问题,并且怀疑是某个属性值的变化导致的,可以设置属性断点来跟踪这个属性的变化情况,以便快速定位问题所在

调试属性值变化:当你想要追踪某个对象属性的变化情况时,可以设置属性断点。例如,你可能想要查看一个变量何时被修改,以及修改后的新值是什么。

异常断点的使用场景

在有些情况下,我们只对某些特定的异常感兴趣,或者我们只对异常感兴趣;我们希望只要程序发生异常程序就能断下来;这好像保存现场一样,这样就会留下的线索比较多,可以使我们快速的找到问题得根源;

举例说明,首先我们添加一个异常断点,单击

然后在弹出的对话框中进行如下设置

在这里插入图片描述

在这里插入图片描述

假如我们只关心空指针异常可以进行如下设置

在这里插入图片描述

选中空指针异常即可,我们人为设置一个空指针异常来看下运行效果:

在这里插入图片描述

方法断点的使用场景

如下所示,有个接口 IMethodTest,同时有两个类 MethodTestImpl1 和 MethodTestImpl2 实现了该接口,在 IMethodTest 的 printMethod() 上打上方法断点

在这里插入图片描述在代码中实例化了 MethodTestImpl2 来调用 printMethod() 。

在这里插入图片描述

最后当 Debug 到该方法断点时,会自动走到 MethodTestImpl2 的 printMethod() 的实现中

条件断点

Ctrl + Shift + F8 条件断点

所谓的条件断点就是在特定条件发生的断点,也就是,我们可将某个断点设置为只对某种事件感兴趣,最典型的应用就是在列表循环中,我们希望在某特定的元素出现时暂停程序运行。假如我们有一个数组里面有1、2、3、4、5五个值,我们想在值等于3的时候停下来,可以设置条件断点;

在这里插入图片描述

右击断点,在弹出的对话框中设置相应的条件即可,我们运行一下看下效果

在这里插入图片描述

日志断点

日志断点

很多时候我们调试的时候更多的是打印日志定位异常代码,缩小范围之后再使用断点解决问题;所以经常做的事情就是在代码里面添加日志信息,输出函数参数,返回信息,输出我们感兴趣的变量信息等。但是这样做的问题在于我们需要重新编译运行程序,并且添加了很多无谓的代码且不好管理,这个时候我们可以使用日志断点;该类型的断点不会使程序停下来,而是在输出我们要它输出的日志信息,然后继续执行。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4、断点管理区

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、Attach Debugger to Android Process调试

“Attach Debugger to Android Process”的意思是将Android Studio的调试器连接到正在运行的Android应用程序进程,以便开发人员可以在运行时进行调试。

以下是如何使用“Attach Debugger to Android Process”方法:

  1. 在Android Studio中启动应用程序并连接设备或模拟器。

  2. 在Android Studio的工具栏中,选择“Run”>“Attach Debugger to Android Process”。

  3. 打开弹出窗口后,您将看到列出所有正在运行的进程的列表。

  4. 选择您想要连接调试器的进程。

  5. 在选择进程后,单击“OK”按钮以开始调试过程。

    在这里插入图片描述

  6. 调试器将连接到选定的进程并开始调试应用程序。

    在这里插入图片描述

    调试器加载后,当前运行代码执行到的断点才会激活

    请注意,该方法仅适用于正在运行的应用程序和进程。如果应用程序未在运行,则无法使用该方法。

6、调试快捷键

操作 快捷键
启动程序的调试模式 Shift+F9
跳到当前执行的断点处 Alt+F10
单步执行,执行到当前行的下一行 F8
进入正在执行的方法 F7
跳到当前执行的断点处 Alt+F10
跳出正在执行的方法 shift + F8
运行到光标处(光标必须在当前断点位置后) Alt+F9
计算选中的变量的值 Alt+F9

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/bb38414a9d.html