-
-
[求助]INT3之后到底执行哪条指令?
-
发表于:
2007-9-21 01:50
4787
-
资料上说调试器在下断点时的步骤是:
1。把要下断点的字节换成一个INT3,然后在调试器里接收这个breakpoint事件
2。之后把原来的那个字节再写回去,同时把CPU改成单步执行模式
3。
由于INT3产生的是trap,因此CPU还会继续在这个地址执行原代码,这样执行一条指令之后,又产生了单步事件
4。调试器再把那个地址写成INT3,这样下次到那儿的时候还是有这个断点。同时取消CPU的单步执行模式
这里面有个问题,就是红色的那句。如果调试器不修改代码的话,INT3之后执行的还会是INT3(也就是一直INT3下去)么?
我自己用windows调试机制做实验,int3之后执行的明明是下一句啊!但如果INT3之后执行下一句,那么断点又是如何实现的呢?
谢谢
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!