首页
社区
课程
招聘
[求助]在18章的补丁技术中,硬件断点的疑问
2010-4-12 15:33 3807

[求助]在18章的补丁技术中,硬件断点的疑问

2010-4-12 15:33
3807
,看到18.2.3节中,利用调试寄存器机制中,
499页书上代码是这样的(以下代码是照这打的,也许打错了,不过关键不在代码)
...
if(dwSSCnt==1)
{ //第一次中断
GetThreadContext(pi.hThread,&Regs);
Regs.Dr0=Regs.Eax;
Regs.Dr7=0x101;
SetThreadContext(pi.hThread,&Regs);
}
else if(dwSSCnt==2)
{//第二次中断
GetThreadContext(pi.hThread,&Regs);
Regs.Dr0=BREAK_POINT1;
Regs.Dr7=0x101;
SetThreadContext(pi.hThread,&Regs);
}
else if(dwSSCnt==3)
{//第三次中断
 .....
}
...


我的疑问,为什么要三次中断才行,
我单步跟了一个,前两次中断好像都是在系统的领空
而第三次才是程序领空。非要三次才正确。

实在是不大明白,为什么要这样??为什么在第一次中断的时候不直接让
Regs.Dr0=BREAK_POINT1;
这试了不行。这是什么原因咧???

忘前辈们解惑,万分感激!

阿里云助力开发者!开发者可享99元/年,续费同价!企业可享99元/199元双重权益

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回