# 反向调试

针对C/C++开发场景，鸿蒙电脑DevEco Studio在提供基础调试能力的基础上，同时提供反向调试能力，帮助开发者更好地理解代码和更迅速定位问题。

反向调试是指在调试过程中可以回退到历史行和历史断点，查看历史调试信息，包括线程、堆栈和变量信息。支持的调试操作为：

* 进入/退出反向调试模式。
* 反向Step Over回退到历史行。
* 反向Resume执行到历史断点。
* 在程序执行历史的记录点上查看全局、静态、局部变量值。

## 前提条件

在**文件 > 设置 > 扩展 > C++调试** 界面，勾选**开启反向调试** 后点击**应用**，开启C++反向调试开关。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a4/v3/LBwNOQkhQHyn-f24ezcUmw/zh-cn_image_0000002749483754.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=23A6F58EE905D9705A2937EC91BA6585AF00B6BC7D10BDDD7368E0D5E4F02789)

## 操作步骤

1. 设置断点，进入调试模式。
2. 开启反向调试开关后，在调试器中会出现反向调试相关按钮。 ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ae/v3/qvJCpkAnSyaYLd3YQz8KAQ/zh-cn_image_0000002749483752.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=CA4A239C9963B9063081970740888F31BF1B719F6A021706D12338E2923CF795 "点击放大")

   需要查看历史调试信息时，点击"Open Reverse Mode"按钮![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/53/v3/sAqfwz0rRIeC4eIspIHg4w/zh-cn_image_0000002778922965.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=EF2BD9DFF2CDDF9274549E0DE57A7D9381043390F6F7DFCB61345D0292B3D7CE "点击放大")进入反向调试模式，您可以在此模式下进行调试。

   ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c5/v3/PSClwJP2RaaW_8DzZu6lBA/zh-cn_image_0000002778922969.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=97AF14E84910C0DD501E5DD9C639F494FD0FE9EF4202EF7F53FFD89FA41A5AF7)

   其中，操作按钮说明如下：
   * ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c2/v3/uydHYpShS-2lbRHLSzQXiA/zh-cn_image_0000002749483758.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=1B262FE0F22D0D5FC0D848FF8D1D217E58181B8E07C754D279D55790F3C226DE)：退出反向调试模式。
   * ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a5/v3/IOM6zNibQ72xxWChLXcmTw/zh-cn_image_0000002778922967.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=BD892C0B4F5D879466EDB127C38B3F28441D26ACF2BA17865A2992997515E332 "点击放大")：切换当前高亮行到下一个历史断点，并显示断点相关信息。
   * ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/41/v3/Kq1FPhc7SAex3N1kc9QVnw/zh-cn_image_0000002779082821.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=F32E0E1BCE54514AAA9F341BC5077FFD8B458BB1E05616BC0BFC4BF72FAB1EE4 "点击放大")：切换当前高亮行到上一个历史断点，并显示断点相关信息。
   * ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7a/v3/T6Huv1gqQ8uNrGdQ1XSJKQ/zh-cn_image_0000002749323882.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=FBE29E6C7E8E582ED3417C053224323E0A7606D7277A80C2E8F4CBFBDA3E6FE1 "点击放大")：切换当前高亮行到下一个历史行，并显示历史行相关信息。
   * ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d9/v3/y6-CdACfSy29mDdaVy-rtQ/zh-cn_image_0000002779082815.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=C3518DF66EDB48D8A6732FAC909C04CB7BD598B2784A2143D950DCC9E2680BE4)：切换当前高亮行到上一个历史行，并显示历史行相关信息。

## 时间线视图

进入反向调试模式后，支持C++调试流程中停留过的历史断点和历史行之间的跳转和调试信息查看。

图中的红点表示历史停留过的断点或行，点击跳转到对应断点或行，并显示相关栈帧信息。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/64/v3/S3ILSDTkRPaPAtAg7hU8Hg/zh-cn_image_0000002749483756.png?HW-CC-KV=V1&HW-CC-Date=20261008T174137Z&HW-CC-Expire=31536000000&HW-CC-Sign=C6D53F9D30CD96F7C0657F6A016AEEFBDCFA949EEA9269164D847DF068BC2D01)

