OD三种断点原理

原出处:http://blog.csdn.net/cbh84663973/article/details/22310099


(1)int 3断点,即cc断点,这是一种基于软中断机制断点,3为中断号。OD中,当你在代码区某行按F2即可实现,其机理是把所在代码的第一个字节保存到一张表上,然后将其修改为CC,当程序运行到此代码时,就会产生中断,从而转至中断服务程序。当你去除断点时,OD会从表里读取出当前断点原来的字节内容。



(2)内存断点,假如你用int 3断点对数据区下断,OD会提示你断点可能不会实现,其实也是必然,程序不可能执行数据区,然而我们却可以当数据被读取或写入时进行下断,这种原理主要基于内存属性,当下读写断点是,OD会修改断点处读写属性,如果程序对此数据读写的话,会产生读写异常,OD捕捉此异常并分析,其可以知道运行到何处,对代码段也可以下此断点,机理相似。



(3)硬件断点,这是由硬件实现(这里是CPU实现),其由CPU调试器实现,断点长度有限,其只用两位记录断点长度,所以只支持4个硬件断点,调试寄存器中有3位表示断点状态及属性,000 保留 001 执行断点  010 访问断点 011 写入断点 100 保留 101 临时断点 110 保留 111 保留

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值