1 设置条件断点

  右击断点–编辑窗口左侧的红点,在上下文菜单上选择“Condition…”。

  这时弹出一个对话框供你设置激活该断点所需的条件。比如:我们希望只有当局部变量paginatedDinners的尺寸小于10时,调试才中断。我们可以写出对应的表达式。
  现在我再运行这个程序,实现搜索,只有返回值小于10时,程序运行才会被中断。对于大于10的值,该断点将被跳过。

  记录到达断点次数
  有时你希望,只有当第N次满足条件的运行到达断点时,才中断程序运行。例如:当第五次返回少于10的查询结果时,中断程序运行。
  可以通过右击断点,然后在弹出菜单上选择“Hit count…”菜单命令实现。
   这时系统弹出一个对话框,它允许你指定:(1)当满足条件,而且进入断点的累计次数等于N时,断点命中一次。(2)当满足条件,而且进入断点的累计次数是N的倍数时,断点命中一次。(3)当满足条件,而且进入断点的累计次数大于N时,每次命中断点。

2 VS 2010使用条件断点进行调试

以调试C++控制台代码为例子,介绍条件断点。
条件断点是在满足条件时,才会断下来的。

方法/步骤
1
启动VS 2010,新建C++控制台工程。

2
以C++代码为例,写了一个求和的C++控制台程序,
输出的是1~9的和。

3
先用普通断点。在12行的左侧空白点击一下就可以插入一个断点了。
在调试的时候可以看到每次代码经过这里时都会断下来。

4
如果想看一下i=5时,res的值怎么办呢?虽然普通断点也能达到,但麻烦了。

5
在断点处,右键,选择“Condition...”进行设置条件。

6
输入条件为i == 5。
默认是选择"Is true",表示当条件为true是断下来。
"Has changed",则如果本次的条件值和最近一次的条件值不同时,才断下来。

7
按F5进行调试,可以看到i == 5的时候,触发了断点。

3 VS条件断点的一个坑

今天早上要调试一个方法,所以在方法的入口处也就是’{’打了一个条件断点,可是随后就发现对这个方法的调用都无法获得正确的结果了,不管传递什么参数,方法的返回值都一样,而且这个返回值与输入的参数完全无关,这个问题折腾了我一早上,差点把我搞崩溃,而且诡异的是,这个问题只有在调试程序的时候才会出现,如果不调试直接运行的话,就是完全正常的。

在抓耳挠腮了一早上之后,用尽了各种办法找不到原因,偶然把条件断点点开,终于发现了问题,原来我把'”==”不小心打成了”=”,如果在代码中出现这种问题的话,代码肯定会编译失败的,可是在条件断点里并不会进行类似的检查,并且由于写成了赋值=,还把方法参数给改了。

4 VS打字符串条件断点的方法 及 查看CStringArray的方法

条件设置为strcmp(fuzzCharRes, "RtlEnterCriticalSection") == 0

Visual Studio中的添加断点功能中支持的字符串函数有:strlen, wcslen, strnlen, wcsnlen, strcmp, wcscmp, _stricmp, _wcsicmp, strncmp, wcsncmp, _strnicmp, _wcsnicmp, strchr, wcschr, strstr, wcsstr.

查看CStringArray的方法
exportedFunctions.m_pData,7056 逗号后面加这个数组的长度

std::string stdStr = "12";
设置条件断点strcmp(stdStr._Bx._Buf, "12") == 0

{_Buf=0x0000000000b54c90 "貐㺦" _Ptr=0x000000003ea68c90 "F" _Alias=0x0000000000b54c90 "Œ¦>" }
    _Buf: 0x0000000000b54c90 "貐㺦"
    _Ptr: 0x000000003ea68c90 "F"
    _Alias: 0x0000000000b54c90 "Œ¦>"

CString 设置条件断点 wcscmp(strObjAddr.m_pszData, L"66") == 0

wcscmp(rcx, L"MOV RCX, 2  Current CallLevel: 1 \n") == 0 带寄存器的版本,配合OutputDebugStringW断点

访问指针成员的变量 在Intermidate窗口或字符串断点中
{,,NsDataModel10.dll}(*(Ns::Member*){*}pVisitable).m_id

VS 条件断点学习总结2相关推荐

  1. VS条件断点学习总结

    HOW TO:在 Visual Studio .NET 中设置条件断点 本任务的内容 摘要 创建示例代码 创建无条件断点 创建条件函数断点 创建附加断点 更改断点属性 在调试模式下逐步调试代码 更改断 ...

  2. android studio 学习入门篇

    开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程: 接下来需要输入应用名称(第一个字母要大写 ...

  3. 信息安全系统设计基础第3周学习总结

    体会:学习过程中,很多知识是陌生的,通过搜索,知识越来越多,心生恐惧,但是面对问题,要一个个学习,认真看,硬着头皮看,在苦逼中寻找乐趣. 遇到的问题及解决: 1.在linux下编译c语言出错: 文件里 ...

  4. 游戏数据的捕捉(郁金香学习笔记)

    目录: 1.得到角色对象属性 2.得到吃药的CALL 3.得到快捷键CALL 4.得到选中怪物的ID地址 5.得到怪物列表 6.得到怪物属性 7.得到显示血条CALL 8.得到普通攻击CALL 9.得 ...

  5. IDEA小技巧:Debug条件断点

    今天DD给大家分享一个IDEA调试过程中的一个小技巧. 先来说说场景,你有没有碰到类似的情况,一个循环结构里,中间某一个情况可能会出错.比如下面的代码结果中,可能执行到第27次的时候,会出现问题. f ...

  6. 2017-2018-2 20155327 《信息安全系统设计基础》第2周学习总结

    2017-2018-2 20155327 <信息安全系统设计基础>第2周学习总结 1-vi . 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc ...

  7. 2018-2019-1 20165337 《信息安全系统设计基础》第一周学习总结

    测试一 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助文档 提交vi编辑过程截图,要全屏,包含自己的学号信息 ...

  8. windbg 脚本学习总结

    windbg 脚本简单入门 http://blog.csdn.net/superliuxing/article/details/19206985 Windbg的功能自然不必说,集内核调试,应用程序调试 ...

  9. VC++调试技巧学习总结

    VC6.0调试方法 有时候,我们编写好一个程序后,希望通过调试来知道变量值的变化情况,下面我和大家分享一下怎么利用VC6.0来查看变量值变化情况. 工具/原料 VC6.0软件.待测试程序 方法/步骤 ...

最新文章

  1. 简述sqlite数据库的特点_SQLite
  2. ActiveMQ点对点消息通信demo
  3. 数学知识在游戏中的运用
  4. ASP.NET Core MVC I\/O编程模型
  5. C语言 | 读写文件
  6. 亮点抢先看 | 旷视科技11篇 ICCV 2019 论文概览
  7. 三维视觉基础之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系
  8. Spring.Net学习笔记十(打造简易的依赖注入框架)
  9. SpringBoot整合shiro框架(张开涛跟我学shiro-综合实例-代码新版)
  10. MySQL数据库之分库分表方案
  11. 2022年4月加拿大MogaFX外汇和衍生品市场活动三年期央行调查
  12. 腾讯微云和坚果云哪个好用?
  13. 【CSS练习】IT修真院--练习6-护工列表界面
  14. FastQC的安装与使用
  15. Vuetify——使用icon图标
  16. 【Redis缓存中间件必须要掌握的面试知识】
  17. 给定经纬度计算距离_根据经纬度计算两地间的距离
  18. English - every和each的用法和区别
  19. 事业单位和公务员的面试方式有什么区别?
  20. [工具]更新音乐下载网站,MP3音乐无损音乐下载器

热门文章

  1. 欧蓝德 (660) -(警车内被乔丹体育)_几款豪华SUV的油耗与空间的巅峰对决!欧蓝德还是奇骏...
  2. lua require dofile loadfile区别
  3. Linux服务器oracle数据库重启服务、重启监听方法,oracle数据库sysdba管理员登录方法
  4. windows 技巧篇-查看文件夹被那个进程占用,文件夹占用解除方法
  5. 数字电路技术基础(四)
  6. CTFshow 命令执行 web30
  7. Conan and Agasa play a Card Game codeforce
  8. 第3周实践项目5 -顺序表的应用 拆分单链表
  9. Simulink仿真 第四节 总线及示波器模块
  10. Reverse Linked List