VS2012 使用条件断点和内存断点

1.条件断点

条件断点是指在达到设置的条件时才触发的断点。

这在调试复杂问题时非常有用,比如循环程序。例如下面的代码片段:

int a=0;
for(int i=0; i<1000; ++i) {
	//... some code
	++a;
	//... some code
}

如果对 a 打下断点,那么每次循环的时候都会触发一次断点。此时我们可以为断点设置触发它的条件,使它满足指定条件时才触发。

以 VS2012 为例,可以通过在源代码窗口或者断点窗口找到该断点后,右击选择条件,操作如下图:

这里写图片描述

选择条件后会弹出设置条件的窗口,如下图所示。比如我们输入i500的时候触发断点。那么当i500的时候断点才会触发,其它情况下断点不会被触发。

这里写图片描述

2.内存断点

根据内存地址设置的断点叫做内存断点,Visual Studio中也叫作数据断点。内存断点只有在指定的地址处的变量被修改时,才会触发,访问指定的地址内容是不会触发内存断点的。

应用场景:

在很多情况要,一个变量使用的地方过多,我们不知道这个变量在何时何处被修改。使用内存断点就可以轻松搞定。

具体用法:

在程序中断的情况下,一次选择【调试】->【新建断点】->【新建数据断点(D)…】,会弹出如下对话框:
这里写图片描述

其中字节计数表示变量的类型大小,比如,int 占用 4 个字节。

示例代码:

int test=0;

int main(){
	test=1;
}

设置了上面的内存断点之后,当test被改变的时候就会触发断点,将程序中断在修改内存断点指定的内存地址的语句的下一条语句处,在 VS2012 中是这样的。

这里写图片描述


参考文献

[1] VS2008条件断点.
[2] CSDN.VS的断点–内存断点

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS2005条件断点是一种非常有用的调试工具。条件断点允许程序员在特定条件满足时断程序的执行。使用条件断点可以帮助程序员快速定位和调试代码问题。 要在VS2005设置条件断点,首先需要处于调试状态。然后,在程序选择需要设置条件断点的行,在右键菜单选择"条件断点"选项。在弹出的对话框,可以输入一个条件表达式。当这个条件表达式为真时,程序会在该断点断执行。 条件断点VS2005的设置与普通断点有一些区别。此外,VS2005还提供了内存断点功能,对于破解分析等方面使用更为广泛。内存断点可以用于调试内存破坏、数组越界等问题。当某个内存数据的值突然改变时,通过设置数据断点,可以帮助程序员快速定位问题所在。 需要注意的是,在VS2005数据断点最多只能设置4个。因此,在使用数据断点时,需要合理选择和设置断点。 总之,条件断点VS2005是一种方便而实用的调试工具,可以帮助程序员快速定位和解决代码问题。同时,内存断点也是一种常用的调试技术,在破解分析等方面有着广泛的应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [VS2005的数据断点功能](https://blog.csdn.net/magictong/article/details/44655213)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值