1、int3 断点,机器码为 0xCC ,因此又叫做 CC 断点 —— n 个

实现方法是比如:将某一行汇编进行了 F2 下断,那么这一行汇编对应的机器码的第一个字节将被改写为 CC ,尽管调试器不会显示,但是实际上已经进行了更改,调试器在执行到这里检测到了 0xCC 之后就会断下。

2、硬件断点,通过 DRx 调试寄存器实现 —— 4 个

DRx 调试寄存器有 8 个:DR0 ~ DR7,其中 DR0 DR1 DR2 DR3 用于保存需要监视的地址,即设置硬件断点,因此最多设置 4 个硬件断点,并通过 DR7 设置状态。硬件断点的效果与 int 3 一样,但是硬件执行断点并不会改写机器码,因此更难检测到,而且硬件断点是断在下一条指令位置。

3、内存断点 —— 1 个

OD 可以设置内存访问断点、内存写入断点。原理是将用户要断点的内存地址设置成 不可读不可写,这样一旦进行读写,则会异常,比较地址之后如果是用户指定的断点地址,则中断。正因为要进行大量的比较,因此比较慢,OD 只能设置一个。

4、内存段访问一次性断点

Alt + M 可以看到程序对应的虚拟内存分为了一个个内存段页,OD 右键可以设置属性以及对整个段下断点,脱壳时比较有用。

5、消息断点

基于 windows 的消息机制,每个消息都会有对应要处理的对象,对象对应唯一的句柄,OD 的 w 按钮中包含了该程序所有的 句柄,右键即可对比如一个 check 按钮下断点,断下时位于系统代码, alt + f9 是回不去的,需要用到 4、内存段访问一次性断点,可以对 .text 下断,F4。

6、条件断点,本质是带有条件表达式的 int 3

7、条件记录断点,不看

调试时使用的 7 种断点相关推荐

  1. c语言调试时出现的三种错误,C语言课件 第十四章 常见错误和程序调试

    <C语言课件 第十四章 常见错误和程序调试>由会员分享,可在线阅读,更多相关<C语言课件 第十四章 常见错误和程序调试(36页珍藏版)>请在人人文库网上搜索. 1.第十四章常见 ...

  2. keil5编译器退出调试时卡死

    更新到keil5版本V5.25之后,目前一直到V5.29版本,都存在一个问题: 退出调试模式时,有可能会卡死! 此时需要在任务管理器中结束掉进程才能强制关闭keil工程. 在Openedv论坛,正点原 ...

  3. VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位如何解决

    VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位怎么解决 问题如下: 1.错误代码报错行数错位  2.debug动态跟踪错位  3.Release跟踪错位  4.断点设置自动 ...

  4. Swift 代码调试-善用XCode工具(UI调试,五种断点,预览UIImage...)

    原创Blog,转载请注明出处   http://blog.csdn.net/hello_hwc?viewmode=list  我的stackoverflow 工欲善其事,必先利其器,强烈建议新手同学好 ...

  5. VS调试时断点无法进入或命中的原因及解决方法(PDB引发的)

    在使用VS开发时,有时断点会无法进入,特别是在一个项目中引用另一个类库项目时.如下图. 我在一个项目中引用了自定义的控件MyControl类库,但在使用时发现,有些地方还需要调整,比如这里我需要增加一 ...

  6. windows下VSCode调试时找不到文件的一种原因

    windows下VSCode调试时找不到文件的一种原因 使用gdb进行 debug调试时 报错:Unable to start debugging. Unexpected GDB output fro ...

  7. AndroidStudio 调试时部分断点不停

    问题:设置了断点,调试时有些断点走了但是无法停住. 原因:debug调试不能混淆代码 解决:build.gradle 里设置 buildTypes,将 debug 中的 minifyEnabled 设 ...

  8. 关于idea的八种断点调试

    背景:在日常开发中,我们经常会使用到idea,那么debug就更不用说了,但是你真的会打断点么,看完这篇文章再下结论吧 (ps,部分图片因为公司做过内部分享,所以打码) 一:行断点 也就是我们去给某一 ...

  9. python断点调试从哪里看数据_python断点调试

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 很多项目是用python写构建脚本的,比如微信最近开源的终端跨平台组件 mars ...

最新文章

  1. databinding 入门 知识 给TextView 赋值
  2. jwt获取token_SpringBoot2 高级案例(09): 整合 JWT 框架,解决Token跨域验证问题
  3. NeurIPS 2019 | 17篇论文,详解图的机器学习趋势
  4. mysql中lock_mysql中的锁lock
  5. 宝塔Linux, 反向代理服务器, 开启WSS
  6. Fast Walsh-Hadamard Transform——快速沃尔什变换
  7. SAP制造业成本核算流程
  8. 基于RulesEngine的业务规则实现
  9. php mssql_init,Php Mssql操作简单封装支持存储过程
  10. python基于百度API的ORC文字识别
  11. 洞烛幽微系列 之 梯度 散度 旋度
  12. Hibernate 第一个程序的问题Unknown entity(新手必看)
  13. Android Banner Indicator 轮播图指示器
  14. 艾宾浩斯曲线真的管用吗?
  15. Oceanbase 扩容TPC-H测试
  16. 英语学习——学英语的心态(2)
  17. CV影视TV版3.0.3最新版 家中观影利器
  18. 流畅的python学习笔记
  19. Linux下Nginx安装证书
  20. nas安装emby_NAS安装Emby实现播放电视源

热门文章

  1. px2rem-loader 适配
  2. SonarQube检测项目代码
  3. 夫妻一方未经授权代签贷款合同不具法律效力
  4. NB | 使用自动化和机器学习的高通量微生物培养组学
  5. 中国全息防伪包装行业市场供需与战略研究报告
  6. Could not create an instance of type T. Type is an interface or abstract class
  7. 【lvcreate】创建lv需要在vg上创建
  8. Java 创建文件软链接
  9. 微信小程序篇_01 微信小程序与Java后端接口交互
  10. php在传json中文乱码,解决php json中文乱码问题