断点类型

0、概述
总共有如下几种断点类型:
普通的位置断点:在程序的固定位置产生断点;
函数断点:在函数定义的第一行产生断点,优点是可以不用打开源代码即可设置断点,并可以用来找main函数;
数据断点:有时候需要弄清楚哪段代码改变了变量,即可使用此断点,当变量值发生改变时,产生此断点;
条件断点--根据命中次数:在一个循环中,可能需要在特定的循环次数中产生中断;
条件断点—根据具体条件:可以用任何变量来定义特定的条件满足时,产生断点,实际上也包括了“根据命中次数”;

断点的进阶应用:
当产生断点时,执行一段代码;
针对特定线程进行调试;

1、各种断点
#include <iostream>
using namespace::std;
int main()
{
int i =0;
int j;
for( i = 0; i < 1000; i++ )
{
cout << "i is "<<i<<endl;
if( i == 650 )
j = 100;
}
}

1.1普通断点
在特定行按F9,则产生断点,只要程序有运行到此行,则产生断点

1.2函数断点
“工具”->”自定义”->”命令”->”调试”->”在函数处中断”
将”在函数处中断”拖到工具栏,然后点击,输入”main”进行测试。

1.3数据断点
“工具”->”自定义”->”命令”->”调试”->”新建数据断点”
首先将”新建数据断点”拖到工具栏,然后在数据变量所在函数入口处,设置普通断点,然后按F5,程序停留在函数入口处,则”新建数据断点”使能,点击”新建数据断点”,输入&j,再按F5,则下个断点发生在i==650时,此时j发生改变。

1.4条件断点--根据命中次数
先在循环内部的特定行插入普通断点,然后在右键此行,选择”断点””命中次数”,则当循环特定次数时,发生中断

1.5条件断点—根据具体条件
先在循环内部的特定行插入普通断点,然后在右键此行,选择”断点””条件”,则当在循环中,此条件满足时发生中断


2、进阶应用
2.1当断点发生时,继续运行,并执行特定操作
先设置上述任意一种断点。然后在断点行,点击右键->”断点”->”命中条件”
可以打印一段消息:这点对应socket编程,可能发生超时的API来说,当断点发生时,不能够中断程序,而是需要让程序继续跑下去;
可以运行宏:可以运行段宏来改变程序中的变量;
可以继续运行:勾选;

2.2限定在特定线程中使用断点
先设置上述任意一种断点,然后在断点行,点击右键->”断点”->”筛选器”

参考资料:
Visual Studio调试之断点基础篇[http://www.cnblogs.com/killmyday/archive/2009/09/26/1574311.html]
Visual Studio调试之断点技巧篇[http://blog.csdn.net/Donjuan/article/details/4618717]
Visual Studio调试之断点进阶篇[http://blog.csdn.net/Donjuan/article/details/4600546]
理解First Chance和Second Chance避免单步调试[http://blog.csdn.net/Donjuan/article/details/3859160]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值