[调试器实现]第三章 硬件断点

本文详细介绍了硬件断点的原理,包括Intel 80386及以上CPU的调试寄存器Dr0-Dr7的功能和使用方法。硬件断点最多设置4个,由Dr0-Dr3寄存器控制,Dr7寄存器用于配置断点类型、长度和全局/局部属性。当硬件断点触发时,会引发单步异常,调试器可以通过Dr6的低4位判断断点来源。设置硬件断点通常涉及选择寄存器、设置地址、配置类型和长度。文章还讨论了处理硬件断点异常的策略,以及在实际操作中应注意的事项。
摘要由CSDN通过智能技术生成

一 硬件断点介绍
 
     硬件断点,顾名思义是由硬件提供给我们的调试寄存器组,我们可以对这些硬件寄存器设置相应的值,然后让硬件帮我们断在需要下断点的地址。
 
     硬件断点是CPU提供的功能,所以要怎么做就得听CPU的硬件寄存器的了。先来看看关于硬件寄存器的说明。Intel 80386以上的CPU 提供了调试寄存器以用于软件调试。386和486拥有6个(另外两个保留)调试寄存器:Dr0,Dr1,Dr2,Dr3,Dr6和Dr7。这些寄存器均是 32位的,如下图所示(该图来源于看雪文章《调试寄存器(DRx)理论与实践》(http://www.pediy.com/bbshtml/BBS6 /pediy6751.htm),在此对文章作者Hume/冷雨飘心表示感谢):
 
|---------------|----------------|
Dr0| 用于一般断点的线性地址 
|---------------|----------------|
Dr1| 用于一般断点的线性地址 
|---------------|----------------|
Dr2| 用于一般断点的线性地址 
|------------&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值