首页
社区
课程
招聘
[原创]暑假浅谈系列-硬件断点
发表于: 2014-8-25 13:24 6241

[原创]暑假浅谈系列-硬件断点

2014-8-25 13:24
6241

前言:去了杭州一个月,兼职了一个月,收获了不少.
   最大体会是中国人都很热情,有时候嘴上面说的,到了最后都会推脱掉,这一点是让我印象最深刻的,我是不是也应该学习学习.

正言:不扯淡了,说说硬件断点 Dr7;
      |---------------|----------------|
Dr7 |RWE LEN   ...    RWE LEN      |     G              G L G L GL GL GL |
      | 3        3     ...      0    0          |     D              E E 3 3 22 11 00 |
      |---------------|----------------|
      31                                          15  13              9                       0
1.
LEN LEN为一个两位的字段,用以指示断点的长度。每一断点寄存器对应一个这样的字段,所以共有四个这样的字段分别对应四个断点寄存器。LEN的四种译码状态对应的断点长度如下

LEN 说明 :
0 0 断点为一字节
0 1 断点为两字节
1 0 保留
1 1 断点为四字节
2.
这里,如果断点是多字节长度,则必须按对应多字节边界进行对齐。如果对应断点是一个指令地址,则LEN必须为00
RWE RWE也是两位的字段,用以指示引起断点异常的访问类型。共有四个RWE字段分别对应四个断点寄存器,RWE的四种译码状态对应的访问类型如下

RWE 说明
0 0 指令
0 1 数据写
1 0 保留
1 1 数据读和写
3.
GE/LE GE/LE为分别指示准确的全局/局部数据断点。如果GE或LE被置位,则处理器将放慢执行速度,使得数据断点准确地把产生断点的指令报告出来。如果这些位没有置位,则处理器在执行数据写的指令接近执行结束稍前一点报告断点条件。

每当启用数据断点时,启用LE或GE。降低处理机执行速度除稍微降低一点性能以外,不会引起别的问题。但是,对速度要求严格的代码区域除外。这时,必须禁用GE及LE,并且必须容许某些不太精确的调试异常报告。
L0—L3/G0—G3 L0—L3及G0—G3位

我们在网上百度硬件断点时候常常看到Dr7=0x405是什么意思呢:
           GL  GL  GL  GL   GL
           EE  33  22  11   00
地址:1  00  00  00  01   01
     10

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 3
支持
分享
最新回复 (5)
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
2
第二句是亮点...
2014-8-25 14:14
0
雪    币: 396
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
厉害,硬件断点什么的,还是很模糊啊,得好好研究咯
2014-8-25 14:17
0
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
赞一个,优秀的文章。
2014-8-25 14:34
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
扫盲贴
2014-8-25 16:22
0
雪    币: 433
活跃值: (1910)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
说个很偷懒的方法

这个方法主要是因为加了SE的壳动态设置Dr7会失效

那静态怎样设置呢

Dr7=0x505
....4个全生效...就是这样
2014-8-25 18:43
0
游客
登录 | 注册 方可回帖
返回
//