使用断点
====

点击**View Breakpoints** 图标![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/35/v3/TLPmwVTLQM2I4IOWBPMnmw/zh-cn_image_0000002624993809.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=F2066EAD99C3673BAB370D75817C60A67C383018694C53F1363064FD535A8E0F)可以打开断点管理界面，您可以在断点管理界面查看或更改您的断点。

*   勾选 Enable ，使能该断点。
*   勾选 Suspend execution ，使程序运行到断点时中断。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/8c/v3/t4Jn6JwSRUCz6IUXpooDMA/zh-cn_image_0000002624993801.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=31D57D8EA6ED08985120C4C6A09D408C1B5503546BE2291EA57E9B39A9D6552E)

#### 条件断点

在某个断点的配置中，勾选 Condition ，并设置表达式作为条件，使程序运行到断点且满足设置的条件时才会中断进程。

#### 日志断点

在某个断点的配置中，勾选以下类型的log，可以使进程运行到断点时在 console 窗口打印相应 log。

*   勾选“Breakpoint hit”message，程序运行到断点时，打印“Breakpoint reached”。
*   勾选 Stack trace，程序运行到断点时，打印当前线程的堆栈。
*   勾选 Evaluate and log，并添加表达式，程序运行到断点时，打印表达式的值。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/95/v3/HR4bnP_cRD2M-RHFs-i-xA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=E70B1BA7D0BED913B6149F978D81A61910F89C1AE62D414EC4F6E25B364BC866)

未勾选 Enable 的断点不会打印日志，未勾选 Suspend execution 的断点会打印日志，不满足所设置的 Condition 的断点不会打印日志。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/41/v3/v48FoGBNQIW1kNI6M5MUrQ/zh-cn_image_0000002594634368.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=6877F08B822585048B143B601866B7170D6DB313219BF20851976A62A3D0D042)

#### 临时断点

在某个断点的配置中，勾选 Remove once hit，该断点只生效一次，生效后该断点会被删除。

#### 函数断点

也叫方法断点或符号断点，使用函数名设置断点，当程序运行到对应函数时，中断进程。

在断点管理界面中点击“+”->“Cpp Symbolic Breakpoints”，在弹出窗口中填写函数名和模块名（模块名可缺省），添加函数断点。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d9/v3/7KUpCy0-QoeAJ4iYdSYLFg/zh-cn_image_0000002625073945.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=01E1E1D403440FECA39A30323A93A714BAD12DBF99034E8370108B757946652B)

#### 异常断点

异常断点可以使程序运行到抛异常或捕获异常的代码处停住。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a6/v3/fzgI4-lESZus5DpdFqbDnw/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=1DC6B210B9CBF9DCFAEC014B57DB2E85AB87ED2FEB5881782F6D6D5346A490D8)

其他系统异常，如 SIGSEGV 等信号异常会默认捕获并中断进程。

在断点管理界面中点选 “Cpp Exception Breakpoints” 下的 “Any exception”，勾选 Enable 使能异常断点。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/eb/v3/W_adp8p0RY-QUwVL30DSNw/zh-cn_image_0000002624993805.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=24A02B5E28E30745FCA2A868AED0CEA30F4A561868FA7B32894325A0BCC7B176)

#### 数据断点

支持三种类型的数据断点，即变量被读、被写、被读写时中断进程。

在变量列表中对某一个变量右键，在菜单中选择添加数据断点。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4e/v3/ejtkk6-MR7ql8cSDfE62Wg/zh-cn_image_0000002624993807.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=4499702A28D33BAA87A779A9AE805A51542AA9D215ECA6437D23DC43BFBD7AA7)

在断点管理界面进行查看和修改。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/0f/v3/YrlBtS5ST0-8tDnplWwV7w/zh-cn_image_0000002625073943.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=9A67D40F6072B0D5511B290CE916B39072B2F1F4E00A476C05DD26D85E7D6342)

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c4/v3/UMH52bJqTo6s3qvU7zm_9w/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073859Z&HW-CC-Expire=86400&HW-CC-Sign=60C7EEA1663EEB79CC34687A95EEC61DF9E47F24EBD0BC81604AA989DBCD60FA)

1.  数据断点支持的类型受硬件限制，支持设置数据断点的变量类型 size 不能超过硬件支持的范围；
2.  受硬件限制，最多同时设置 2 个数据断点；
3.  对局部变量设置的数据断点，需要在离开作用域时手动删除，否则会由于变量地址被重用导致进程中断。