文章目录

  • 1.条件断点
  • 2.内存断点
  • 参考文献

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的断点–内存断点

VS2012 使用条件断点和内存断点相关推荐

  1. 消息断点+内存断点定位窗口过程

    在调试比较复杂的Win32程序时,要找到窗口过程并不容易,OD提供了两个工具:消息断点和内存断点,善用这两个工具可以大大提高调试的效率. 消息断点是给指定的消息设置断点,本质还是条件断点:内存断点有访 ...

  2. od结构体大小_od内存断点的探析和检测方法

    作为一款流行的动态,OD 的成功离不开断点.可以说,断点成就了 OD,不难想象,如 果在调试过程中,下的断点全部失效了,那么 OD 就武功全废了.在前面的文章里,我曾介 绍 OD有三大断点:int3断 ...

  3. windbg内存断点学习总结

    Windbg中使用查找内存并设置访问断点 http://www.cnblogs.com/SkyMouse/archive/2012/06/06/2538745.html 在windbg中通过s 命令在 ...

  4. 软件调试学习笔记(五)—— 软件断点内存断点

    软件调试学习笔记(五)-- 软件断点&内存断点 调试的本质 软件断点 软件断点的执行流程 分析INT 3执行流程 实验:处理软件断点 内存断点 内存断点的执行流程 实验:处理内存断点 调试的本 ...

  5. [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. OllyDBG 入门系列(四)-内存断点

    [原创]OllyDBG 入门系列(四)-内存断点 <!-- PHPForce - Joey修改性别 --><!-- /PHPForce - Joey修改性别 --> <! ...

  7. xx学OD -- 内存断点(上)

    这一篇讲的是 内存断点 上一篇学习函数参考的时候最后破解是这样子的. 0040132D |. 3BC6 CMP  EAX, ESI ;比较EAX和ESI的内容; 而ESI和EAX的值是经过一个加密算法 ...

  8. Windows内存详解(四)OD内存断点初步分析

    内存断点原理: 内存断点原理,通过将内存断点所在内存页的属性修改为内存断点属性(non-access or non-writable),程序执行时,对目标内存页中所有数据的访问或写,都会抛出异常,OD ...

  9. idea条件断点和异常断点

    在好多时候使用条件断点和异常断点有奇效,而且高效 条件断点: 调试的时候,在循环里增加条件判断,可以极大的提高效率,心情也能愉悦.以下介绍下IDEA使用条件[Condition]断点的方法 1.编写一 ...

最新文章

  1. Pandas 基础 (5) —— 处理缺失数据及层次化索引
  2. 两条波浪线符号_四年级数学上册第二单元“线的认识”作业单(附带答案)
  3. 老司机带你学爬虫——Python爬虫技术分享
  4. 转载 jsonrpc环境搭建和简单实例
  5. SQLServer · 最佳实践 · RDS for SQLServer 2012权限限制提升与改善
  6. winsock setsockopt 详解
  7. gitlab介绍、安装及gitlab CI、与jenkins的对比
  8. 多个python文件相互调用_用 python提取两个文件之间的内容
  9. 牛客多校10 - Decrement on the Tree(边权转点权+思维)
  10. gradle 构建 Smack 报错:Can't find android.jar for 8 API. + steps for building android platform
  11. 项目案例第二篇中小型公司优化性能安全篇
  12. url 编码 js url传参中文乱码解决方案
  13. 在anaconda中为jupyter安装扩展插件
  14. Excel中 使用链接 批量导入图片
  15. javascrip执行字符串里面的函数
  16. [原]浅谈几种服务器端模型——多进程并发式
  17. QTP不识别树结构中的点击事件
  18. 使用自定义函数替代Linux rm命令
  19. c语言-蓝桥杯-平面切割
  20. 【loj6184】无心行挽(虚树+倍增)

热门文章

  1. C语言使用时间创建随机数
  2. 优秀的用户体验设计,从讲好一个故事开始
  3. JavaScript实现继承的方式
  4. Wireshark和TcpDump抓包分析心得
  5. [Android Studio] Android Studio如何快速生成get,set,tostring,构造函数
  6. android连接指定的wifi
  7. WebService中运用自定义类的处理要领(转)
  8. Flex3——编译器错误代码列表
  9. Ubuntu中SVN的安装和使用
  10. SQLite 指南之FAQ(中文)