上一篇讲了 Debug 启动调试,本文介绍另一种调试方式——Attach Debugger。它和 Debug 最大的区别是:可以先运行应用,再启动调试,不需要从头跑。

一、Attach Debugger 与 Debug 的区别

可以通过将调试程序 attach 到已运行的应用进行调试。

核心区别:

方式说明
Attach Debugger可以先运行应用/元服务,然后再启动调试,或者直接启动设备上已安装的应用/元服务进行调试
Debug直接运行应用/元服务后立即启动调试

简单理解:

  • Debug:从头跑,边跑边调

  • Attach:应用已经在跑了,把调试器"挂"上去

二、前提条件

当前设备上被 attach 的应用代码和本地代码一致,且已提前构建生成必要的 sourceMap 文件。

说明:代码不一致会导致断点错位、变量值对不上,所以 attach 前务必确认本地代码和设备上运行的版本一致。

场景说明
本地无源码attach 不支持
bundleName 不匹配将出现提示 "The selected process does not match the bundleName of the current project!",但不阻塞调试过程

三、操作步骤

步骤一:选择调试设备并启动 Attach

在工具栏中:

  1. 选择调试的设备

  2. 单击 Attach Debugger to Process 启动调试

步骤二:选择要调试的应用进程

选择要调试的应用进程。

说明:若应用 bundleName 与当前工程不一致,则需勾选 Show all process。

说明:签名要求

正常情况下,attach 调试仅支持 debug 签名的应用。

从 DevEco Studio 6.0.2 Beta1 版本开始,PC/2in1 上的应用,如果使用了 release 签名并且配置了 ohos.permission.kernel.ALLOW_DEBUG 权限,也支持被 attach 调试。

步骤三:选择调试配置

选择需要使用的调试配置,或者使用默认配置。

步骤四:选择 Debug type

选择需要调试的 Debug type。

若选择已创建的 Run/Debug configuration 进行 attach 调试,此时 Debug type 不可改变,只可在 Run/Debug configuration 界面修改。

步骤五:开始 attach 调试

点击 OK 开始 attach 调试。

选择进程界面字段说明:

字段说明
Show all processes勾选后可显示所有进程(包括 bundleName 不匹配的)
Debugger settings from调试器设置来源
Application应用(如 entry)
Debug type调试类型(如 Detect Automatically)
进程列表如 com.example.myTest
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐